图片:
结果:
我有一个问题,就是在我按下'(单引号)或其中的许多按钮后,提交按钮(回复按钮)没有被禁用,我只是想禁用它。关键是要防止有人在文本区域上键入单引号/双引号或怪异字符。我在这里有一个人的代码,它可以在不同的文件中进行测试,但是这里的条件是不同的,表单在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);
}
});
});
最佳答案
您必须使用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);
}
});
});