只读jquery

Abu*_*ude 9 html javascript jquery

我正在尝试将readonly添加到所有输入,然后在单击上删除readonly以使其适用于键入.所有输入部分的只读设置工作,但点击删除不起作用请帮助.

我的代码:

<script language="javascript">
$(document).ready(function()
{
$('#secureFields :input').attr('readonly', true);

    $('.readonly').click(
    function()
    {
        if ($('.readonly').attr("readonly") == true)
        {
            $('.readonly').val('');
            $('.readonly').removeAttr("readonly");
        }           
    }); 
});
</script>
Run Code Online (Sandbox Code Playgroud)

HTML是这样的:

 <table class='table' id='secureFields'  >
        <tr>
            <td width=200>First Name:</td>
            <td><input readonly='readonly'  type='text'  name='firstname' size=30 class='required'/></td>
        </tr>
        <tr>
Run Code Online (Sandbox Code Playgroud)

Sud*_*oti 9

你的意思是:

$("input").click(function() {
  if ( $(this).is('[readonly]') ) {
     $(this).removeAttr("readonly");
  } 
});
Run Code Online (Sandbox Code Playgroud)

见:jsFiddle


Chr*_*oph 3

重要提示:不要写language="javascript"但是type="text/javascript"

您必须以attribute只读方式选择输入,而不是class只读。

所以请执行以下操作:

$('input[readonly]').click(
Run Code Online (Sandbox Code Playgroud)

代替

$('.readonly').click(
Run Code Online (Sandbox Code Playgroud)

然后你只需要一行:

$(this).removeProp("readonly");
Run Code Online (Sandbox Code Playgroud)

这是正确的代码:

$('input[readonly]').click(function(){
     $(this).removeProp("readonly");           
});
Run Code Online (Sandbox Code Playgroud)

查看示例小提琴

仅供参考:脚本不会被您停止readonly,他们可以简单地设置字段的值......

  • 让我们[在聊天中继续讨论](http://chat.stackoverflow.com/rooms/12476/discussion- Between-christoph-and-abude) (3认同)