3

ページのテキストボックスを無効にするために、次のjqueryを使用しています。私が直面している問題は、データベースに保存されているため、デフォルトで「remote_server」が0に設定されたページが読み込まれることです。これが自動的に設定されていても、フィールドは変更できます。選択ドロップダウンをクリックして、「いいえ」を再選択する必要があります。

これが私のJSです

var e = document.getElementsByName("remote_server")[0]
var strUser = e.options[e.selectedIndex].value;

if ( strUser == 0 ) {

$('select[name=remote_server]').change(function(){
var inputs = $('input[name^=ftp_],select[name^=ftp_]');
$(this).val() == "0" ? inputs.attr("disabled", "disabled") : inputs.removeAttr("disabled");
});
}

ドロップダウン選択用のremote_serverHTMLコード。

<select name="remote_server" class="required">
<option></option>
<option value="1" <?php if($remote=="1") echo 'selected="selected"'; ?>>Yes</option>
<option value="0" <?php if($remote=="0") echo 'selected="selected"'; ?>>No</option>
</select>

ページをロードすると、オプション0が選択されている場所もわかります。これが私を困惑させる理由です。

<select name="remote_server" class="required">
<option></option>
<option value="1" >Yes</option>
<option value="0" selected="selected">No</option>
</select>
4

1 に答える 1

0

changeイベントをトリガーする必要があります。

$('select[name=remote_server]').change(function(){
   var inputs = $('input[name^=ftp_],select[name^=ftp_]');
   $(this).val() == "0" 
   ? inputs.attr("disabled", "disabled") 
   : inputs.removeAttr("disabled");
}).change() // trigger the event

要素のプロパティを設定/取得するためのjQuery1.6以降では、次のprop代わりにメソッドを使用する必要があることに注意してattrください。

var $inputs = $('input[name^=ftp_],select[name^=ftp_]');

$('select[name=remote_server]').change(function(){
     $inputs.prop('disabled', this.value === 0)
}).change();
于 2012-12-22T21:24:53.753 に答える