2014-01-31 5 views
0

Как изменить jquery для использования var вместо «12»?Как использовать переменную в JQuery select

var disableId = 12; 

    if (e.currentTarget.checked) { 

     $("input:checkbox[value=12]").attr("disabled", true); 
    } 
    else { 
     $("input:checkbox[value=12]").attr("disabled", false); 
    } 
+0

$ («вход: Флажок [значение = '» + disableId + "']). attr (" disabled ", true); –

+0

Если вы перейдете прямо к ответу Антона, я просто укажу здесь [то, что я сказал в своем ответе] (http://stackoverflow.com/a/21482280/1317805): оператор 'if', который вы используете, не является необходимым, поскольку вы можете просто передать' e.currentTarget.checked' вместо 'true' или' false'. Вы также должны использовать 'prop () 'вместо' attr() '. –

ответ

1

Вы должны использовать jQuery's prop() method вместо attr() для булевых значений; Кроме того, нет никакой потребности в отчетности, если вообще, как вы можете просто установить disabled состояние равным e.currentTarget.checked (который является либо true или false):

var disableId = 12, 
    state = e.currentTarget.checked; 

$("input:checkbox[value='" + disableId + "']").prop("disabled", state); 
+0

Спасибо Джеймсу, это отличный ответ. –

1

Открыть строку и добавить его

$("input:checkbox[value='"+disableId +"']").prop("disabled", true); 

также следует использовать опору() вместо Attr для boleean значений

Смежные вопросы