按下单引号后禁用提交按钮不起作用

时间:2015-11-10 03:28:18

标签: javascript jquery html ajax

图像:

enter image description here

结果:

enter image description here

我有一个问题,即按下'(单引号)或其中许多按钮后,提示按钮(回复按钮)未被禁用,我只是想禁用它。关键在于阻止某人在textarea上键入单/双引号或奇怪的字符。我有一个来自这里的人的代码,它可以在不同的文件中进行测试,但这里条件不同,表单在ajax中,我在Jquery中非常新,我不知道放在哪里使其有效的代码。

这是我简单的ajax代码:

var x;
function clickreply(obj){
    var varid = obj.id;
    var getnumb = varid.match(/\d/g); //get number from string
    var idreply = 'idreply'+getnumb;
    console.log(varid);
    console.log(getnumb);
    console.log(idreply);
    $.ajax({
        url: '/logincheckmember2.php', //This is the current doc
        type: "POST",
        dataType:'json', // add json datatype to get json
        success : 
        function (result) {
            x=result['ssloginmember'];
            console.log(x);
            if(result['ssloginmember']==null){
                msgBLshow();
            }else{
                x="<center>"+
                    "<form method='post' name='myForm' id='myForm'>"+
                        "<textarea id='tareply' rows='4' cols='50' maxlength='250' placeholder='maxlength=250'></textarea><br>"+
                        "<input type='submit' id='submitreply' value='reply' onclick='clicktareply()'></input>"+
                    "</form>"+
                "</center>";
                document.getElementById("msgcontent1").innerHTML=x;
                $("#msg1").fadeTo(1000, 1);
            }                   
        }
    });
}
function clicktareply(){
    alert(document.getElementById("tareply").value);
}

$(document).ready(function() {
    $('#tareply').keyup(function() {
        if(!$(this).val().match(/^(?!\s)([a-zA-Z0-9 _.)?&]){1,}$/g)) {
           $('#submitreply').prop('disabled', true);
        }else{
           $('#submitreply').prop('disabled', false);
        }
    });
});

1 个答案:

答案 0 :(得分:2)

你必须使用keypress而不是keyup。因为你想阻止单引号

$(document).ready(function() {
    $('body').delegate('#tareply','keyup',function() {
     //match condition ..do your logic here ..personally i use indexOf rather than regexp
        if(!$(this).val().match(/^(?!\s)([a-zA-Z0-9 _.)?&]){1,}$/g)) {
           $('#submitreply').prop('disabled', true);
        }else{
           $('#submitreply').prop('disabled', false);
        }
    });
});