0

当我创建新产品时,我需要定义它是否是本地的。产品模型具有布尔类型的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>
4

3 回答 3

2

试试这个:jQuery('#IsLocal').is(":checked")

jQuery.post('/Product/Create', {
                    Name: jQuery('#Name').val(),
                    IsLocal: jQuery('#IsLocal').is(":checked"),
                    ImagePath: jQuery('#ImagePath').val(),
                    CategoryId: jQuery('#CategoryId').val(),
                    Price: jQuery('#Price').val(),
                    ............................ 
                    formname: 'Product_Form',
                    formtype: 'ProductF'
}

供您编辑

在此处查看演示http://jsfiddle.net/43GsG/4/

HTML:

@Html.RadioButtonFor(model => model.IsLocal, true, new { name = "IsLocal", id = "IsLocal_true", value = "yes", Checked = "checked" })

@Html.RadioButtonFor(model => model.IsLocal, false, new { name = "IsLocal", id = "IsLocal_false", value = "no" })

JS:

$("input[name=IsLocal]").click(function () {
    if($('#IsLocal_true').is(":checked")){
      $('#yes').show();
    }
    else {
      $('#yes').hide();
    }
  });
于 2013-01-07T06:08:14.037 回答
1

如果您想要选择单选按钮的值,最好按照以下方式进行。

jQuery('input:radio[name=IsLocal]:checked').val();

于 2013-01-07T06:09:02.227 回答
1

尝试 :

  jQuery('#IsLocal').attr('checked');
于 2013-01-07T06:12:57.647 回答