2 つのラジオボタンがあり、ラジオボタンを介していくつかのフィールドをアクティブ/非アクティブにします。しかし、ajax 経由でフォームからデータを送信し、ページをリロードせずにフォームを 2 回目に開くと、ラジオ ボタンが壊れます。つまり、アクティブ/非アクティブ機能が提供されません。したがって、たとえば、ボタン 2 をクリックすると、field3 がアクティブになり、必要なデータを入力して ajax 経由でサーバーに送信しますが、ダイアログを 2 回目に開くと、ラジオボタン 2 がまだアクティブであり、ot を変更しようとするとラジオボタン 1 フィールド 1,2 はまだ非アクティブですが、ページをリロードするとすべて問題ありません。どうしたの?ここに私のhtmlコードがあります:
<a href="javascript:void(0)" class="add">click here</a>
<div id="dialog-form" title="title">
<p class="validateTips">All form fields matched with (*) are required</p>
<form>
<fieldset>
<div>
<div>
<label for="name">Name(*)</label>
<textarea id="myName" class="text ui-widget-content ui-corner-all"></textarea>
</div>
</div>
<div>
<label for="perc">percent(*)</label>
<input type="number" id ="perc" step="0.5" />
</div>
<div>
<table>
<tr>
<td>
<input type="radio" id="but1" name="group1" value="1">1<br>
</td>
<td>
<input type="radio" id="but2" name="group1" value="2">2<br>
</td>
</tr>
<tr>
<td>
<table>
<tr>
<label for="field1">field1 (*)</label>
<input type="text" id="field1" value="" class="group1" > <br>
</tr>
<tr>
<label for="field2">field2 (*)</label>
<input type="text" id="field2" value="" class="group1" > <br>
</tr>
</table>
</td>
<td>
<label for="field3">field3 (*)</label>
<input id="field3" type="text" value="" class="group2" >
</td>
</tr>
</table>
</div>
</fieldset>
</form>
</div>
ラジオボタンを介してフィールドのアクティビティを変更するjQueryコードは次のとおりです。
$(document).ready(function() {
$("input:radio").on("click", function() {
makeFieldsActive($(this));
});
});
function makeFieldsActive(elem) {
$("input:text").prop("disabled", true);
$("input.group" + elem.val()).prop("disabled", false);
}