将javascript转换为jQuery以禁用选项选择上的文本框

时间:2012-12-22 18:18:54

标签: jquery

如果我的“remote_server”选项设置为no,我目前正在使用javascript来禁用文本框。这是我现有的代码

HTML

<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>

的Javascript

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

if ( strUser == 0 ) {
document.getElementsByName("ftp_hostname")[0].setAttribute("disabled", "disabled");
document.getElementsByName("ftp_user")[0].setAttribute("disabled", "disabled");
document.getElementsByName("ftp_password")[0].setAttribute("disabled", "disabled");
document.getElementsByName("ftp_mode")[0].setAttribute("disabled", "disabled");
document.getElementsByName("ftp_port")[0].setAttribute("disabled", "disabled");
document.getElementsByName("ftp_directory")[0].setAttribute("disabled", "disabled");
}

是否有一种简单的方法可以将其转换为jquery,以便在选择选项时,文本框是启用还是禁用?

3 个答案:

答案 0 :(得分:0)

这样做: -

$('input[name=ftp_user]').attr('disabled', 'disabled');

更新

详细了解 prop() attr()

$('input[name^=ftp_]').attr("disabled", "disabled");
$('input[name^=ftp_]').prop("disabled", "disabled");​

OR

$('input[name^=ftp_]').prop("disabled", true);​

参考 LIVE DEMO

答案 1 :(得分:0)

试试这个:

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

答案 2 :(得分:0)

如果您要定位输入,请尝试使用此选项:

you can change to select if your html element's name belongs to html's <select> tag

$(document).on('change', 'select[name="remote_server"]', function() {
    if ($(this).val() == "1") {
       $('input[name^=ftp_]').prop("disabled", true);
    } else {
       $('input[name^=ftp_]').prop("disabled", false);
    }
});