新しい製品を作成するとき、それがローカルかどうかを定義する必要があります。製品モデルにはブール型の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 が常に false であることです。ただし、他のフィールドの値は正しくコントローラーに送られます。チェックに応じて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>