当我创建新产品时,我需要定义它是否是本地的。产品模型具有布尔类型的IsLocal属性。
这是视图:
<form action="/Product/Create" method="post" id="Product_Form">
<div>
<label>Local</label>
<input type="radio" name="IsLocal" id="IsLocal" value="yes" checked="checked" tabindex="10" />
</div>
<div>
<label>Not local</label>
<input type="radio" name="IsLocal" value="no" tabindex="11" />
</div>
<div id="yes">
//some fields looks when product is local.
</div>
...
<input type="submit" value="Create" class="large" tabindex="17" />
</form>
首先,选中本地单选按钮。当我检查Not local时,某些字段会隐藏在此代码中。
<script>
$("input:radio[name='IsLocal']").click(function () {
$('#yes').hide();
$('#' + $("input:radio[name='IsLocal']:checked").val()).show(); });
</script>
但是,我应该使用我找到的 jquery 函数将值发送到控制器。
jQuery.post('/Product/Create', {
Name: jQuery('#Name').val(),
IsLocal: jQuery('#IsLocal').val(),
ImagePath: jQuery('#ImagePath').val(),
CategoryId: jQuery('#CategoryId').val(),
Price: jQuery('#Price').val(),
............................
formname: 'Product_Form',
formtype: 'ProductF'
}
问题是, IsLocal 总是错误的。但是,其他字段的值正确地进入控制器。我应该怎么做,根据检查发送IsLocal值?(抱歉英语不好)
编辑:
我改变<input>
了@Html.RadioButtonFor()
:
@Html.RadioButtonFor(model => model.IsLocal, true, new { id = "IsLocal_true", value = "yes", Checked = "checked" })
@Html.RadioButtonFor(model => model.IsLocal, false, new { id = "IsLocal_false", value = "no" })
IsLocal
有效,但现在隐藏面板不起作用。现在,我必须如何更改此脚本?隐藏和显示<div id="yes">
标签。
<script>
$("input:radio[name='IsLocal']").click(function () {
$('#yes').hide();
$('#' + $("input:radio[name='IsLocal']:checked").val()).show(); });
</script>