cshtml页面部分代码:
如上所述,在js中获得表单提交的各个值,或者获得model更改后的值,请帮忙小弟,不胜感激!
div class="col-sub"> @using (Html.BeginForm("SaveTTMallConfig", "TTMall", FormMethod.Post, new { id="J_ttmall_form"})) { <div> <fieldset> <div id="J_ttmall_config2" class=""> <div class="editor-field"> <label class="hd"> 模板主题:</label> @Html.RadioButtonListFor(m => m.Scheme, "mallScheme", System.Web.UI.WebControls.RepeatDirection.Horizontal) </div> <div class="editor-field"> <label class="hd"> 模板规格:</label> @Html.RadioButtonListFor(m => m.Size, "mallSize", System.Web.UI.WebControls.RepeatDirection.Horizontal) </div> <script> //在这里获取m.Scheme,m.Size的值 //不考虑根据html结构找id等等方法 //直接获得form封装后的 key value 可以 //直接获得更改后的model.Scheme等的值 可以 </script>
如上所述,在js中获得表单提交的各个值,或者获得model更改后的值,请帮忙小弟,不胜感激!
回复讨论(解决方案)
<script type="text/javascript"> var ss = '@Model.Scheme; alert(ss); </script>
应该不行吧。javascript只能取得页面上的值。
不过你可以将m.Scheme,m.Size的值赋给hidden field,再在javascript中取。
不过你可以将m.Scheme,m.Size的值赋给hidden field,再在javascript中取。
应该不行吧。javascript只能取得页面上的值。
不过你可以将m.Scheme,m.Size的值赋给hidden field,再在javascript中取。
不过你可以将m.Scheme,m.Size的值赋给hidden field,再在javascript中取。
如果控制器像页面返回了当前Model,那么在JS中是可以那么获取的
var ss =' @Model.Scheme';
相当于webfrom中的
var ss='<%=xx%>'
相当于webfrom中的
var ss='<%=xx%>'
HTML code
<script type="text/javascript">
var ss = '@Model.Scheme;
alert(ss);
</script>
<script type="text/javascript">
var ss = '@Model.Scheme;
alert(ss);
</script>
这个是静态的,不是动态的值呀.
不建议这么写可以将MODEL的值赋给hidden通过JS获取
var ss =' @Model.Scheme';
相当于webfrom中的
var ss='<%=xx%>'
相当于webfrom中的
var ss='<%=xx%>'
如果可以的话, 这个办法好。
不建议这么写可以将MODEL的值赋给hidden通过JS获取
@Html.RadioButtonListFor(m => m.Scheme, "mallScheme", System.Web.UI.WebControls.RepeatDirection.Horizontal)
我要获得这个m.Scheme的值,页面是传进来一个model.scheme,不过那个是静态的,我要获得是值表单里面的,是动态的.
是经过表单更改后的model的各个项的值
或者有没有方法,在知道表单id的情况下,获得当前表单里面的各项的值.
HTML code
<script type="text/javascript">
var ss = '@Model.Scheme;
alert(ss);
</script>
<script type="text/javascript">
var ss = '@Model.Scheme;
alert(ss);
</script>
这个本身就是动态的,你在控制器中已经向页面返回了Model,而这个Model中,当然会包含你的那些属性,像
Scheme,Size等,而这个Model是从数据库里查出来的,当你修改了之后,刷新页面,控制器会根据地址栏的ID查询该ID的记录,然后向页面返回这个Model,都已经得到了,还要赋值给隐藏域?这不是表单提交
引用 2 楼 的回复:
HTML code
<script type="text/javascript">
var ss = '@Model.Scheme;
alert(ss);
</script>
这个本身就是动态的,你在控制器中已经向页面返回了Model,而这个Model中,当然会包含你的那些属性,像
Scheme,Size等,而这个Model是从数据库里查出……
HTML code
<script type="text/javascript">
var ss = '@Model.Scheme;
alert(ss);
</script>
这个本身就是动态的,你在控制器中已经向页面返回了Model,而这个Model中,当然会包含你的那些属性,像
Scheme,Size等,而这个Model是从数据库里查出……
用户操作过程:打开页面->填写修改表单->点击预览->保存(提交表单)
我要在用户 填写修改表单-至(获取表单各项值)-保存 这个过程中获取表单的值.
晕,我就是在表单未提交之前,不与controller交互获取,js中获取表单项的值
注意,我上面写的不是表单提交代码,而是初次访问页面的时候访问当前页面对应ID的Model,并返回在页面上
就像WebForm中的,修改用户信息一样,进入修改页面,你肯定先根据当前ID查询之前的字段值呀,比如用户名,性别,爱好,然后显示在页面上,提交的时候在根据你修改的进行提交呀,也就是说在修改页面,用户肯定要先看到自己之前的信息,而这些是提交之前的
而上面的代码正是在提交之前的初始化页面操作
怎么?换了一个环境就转不过来了?
真正的提交代码,应该如下呀,传过来修改的模型呀
就像WebForm中的,修改用户信息一样,进入修改页面,你肯定先根据当前ID查询之前的字段值呀,比如用户名,性别,爱好,然后显示在页面上,提交的时候在根据你修改的进行提交呀,也就是说在修改页面,用户肯定要先看到自己之前的信息,而这些是提交之前的
而上面的代码正是在提交之前的初始化页面操作
怎么?换了一个环境就转不过来了?
真正的提交代码,应该如下呀,传过来修改的模型呀
[HttpPost] public ActionResult Edit(Bif model) { BIF bif = db.BIF.Single(b => b.Id == id); bif.UserName=model.UserName; //......... return View(bif); }
可以试试通过js遍历表单个元素,然后通过判断是否为radio类型 如果是取出radio的值