如何添加和删除属性“readonly”?

$(document).ready(function() { //Check City Value var city_value = parseInt($("#city").val()); if( city_value == 0) { $("#state").attr("readonly", true); //$("#rate").attr("readonly", "readonly"); } else { $("#state").removeAttr("readonly"); //document.getElementById("state").removeAttribute("readonly",0); //get_states(city_value); } /*** //Check State Value var state_value = parseInt($('#state').val()); if( state_value == 0) { $('#rate').attr('readonly', true); } else { $('#rate').attr('readonly', false); } ***/ }); 

这是我的示例代码。

  PLEASE_SELECT_TEXT Antalya Bodrum Istanbul   

我还添加了doctype:

  

是的,最后我找到了解决方案。 我用过onChange函数。

      

在我拥有的所有主流浏览器中都能正常工作。 这是一个SSCCE :

    SO question 2496443          

切换它会使背景变为灰色(虽然并非所有浏览器都这样做)并且输入是不可编辑的(这在所有webbrowsers中都是一致的)。 所以你的问题就在别的地方。 您可能使用的是较差的doctype ,也可能与较差的webbrowser结合使用。

readonly属性采用布尔值,而readonly属性采用字符串值。 您应该使用已注释掉的代码:

 $("#rate").attr("readonly", "readonly"); 

你可以在没有jQuery的纯JS(或Vanilla JS )中完成它:

设置属性readOnly

 document.getElementById("state").readOnly = true; 

并且未设置:

 document.getElementById("state").readOnly = false;