モデルに強く型付けされた 2 つのラジオボタンを含むこのビューがあり、それらのラジオボタンの状態に応じてテキスト ボックス フィールドを有効/無効にしたいと考えています。
これが、私が今取り組んでいるビューとスクリプトです。
@model IList<MyApp.Models.ObjInfo>
@{
ViewBag.Title = "SendItems";
}
<h2>Ebay Items</h2>
<script src="/Scripts/jquery-1.7.1.min.js"
type="text/javascript"></script>
<script type="text/javascript">
function dostate1() {
$("#textfield1").attr("disabled", "disabled");
$("#textfield2").removeAttr("disabled");
$("#textfield3").removeAttr("disabled");
}
function dostate2() {
$("#textfield1").removeAttr("disabled");
$("#textfield2").attr("disabled", "disabled");
$("#textfield3").attr("disabled", "disabled");
}
$(document).ready(function ()
{
alert("The document is ready");
if ($("#state1").is(":checked")) {
dostate1();
} else {
dostate2();
}
$("#state1").click(function (){
alert("Auction radio button has been clicked");
dostate1();
});
$("#state2").click(function () {
alert("Buy It Now radio button has been clicked");
dostate2();
});
});
</script>
<p>
@using (Html.BeginForm("ManageItems", "Item Inventory"))
{
(...)
@for (int i = 0; i < Model.Count; i++)
{
<p>
<tr>
<td>@Html.DisplayFor(x => x[i].m_OtrObj.m_ObjName)</td>
<td>@Html.RadioButtonFor(x => x[i].m_State, "State 1", new {id = "state1", style ="width: 50px"})</td>
<td>@Html.RadioButtonFor(x => x[i].m_State, "State 2", new {id = "state2", style ="width: 50px"})</td>
<td>
@Html.TextBoxFor(x => x[i].m_Field1, new{id = "textField1", style = "width:200px"})
</td>
<td>
@Html.TextBoxFor(x => x[i].m_Field2, new {id = "textField2", style = "width:200px"})
</td>
<td>
@Html.TextBoxFor(x => x[i].m_Field3, new {id ="textField3", style = "width:200px" })
</td>
</tr>
</p>
}
</table>
<input type="submit" value="Do Something"/>
}
</p>
現在、2 つの主な問題があります。
- 各ラジオボタンをクリックすると、無効にしたいフィールドが実際に無効になりますが、他のフィールドは有効になりません。
- スクリプトは実際にはボタンがクリックされたときにのみ実行されますが、デフォルトで「状態 1」ラジオ ボタンが有効になっているため、フィールド 1 がアクティブにならないように開始時に実行する必要があります。
私はjavascriptに関して本当に初心者なので、誰か助けてもらえますか? ありがとう!!
編集 **
これまでの進化を示すためにスクリプトを修正しました。助けてくれたすべての人に感謝します。スクリプトは機能しますが、リストの最初の項目に対してのみです。オブジェクトのリスト (@model を参照) であることを考慮して、リスト内の各アイテムに個別に影響を与えるにはどうすればよいですか?