我想在用户输入数字或特殊字符时阻止提交数据。我用过这个。下面 防止提交
//restric entering numbers and special characters
function checkLetters() {
var crop = $('#crop').val().trim();
//Entering numbers
if (crop.match(/([0-9])/)) {
$('#cropEr4').show();
boolsub = false;
}
else {
$('#cropEr4').hide();
boolsub = true;
}
//Entering special characters
if (crop.match(/([!,%,&,@,#,$,^,*,?,_,~])/)) {
$('#cropEr3').show();
boolsub = false;
}
else {
$('#cropEr3').hide();
boolsub = true;
}
}
//prevent submitting
function validateSubmit() {
var crop = $('#crop').val().trim();
if (crop !== "") {
$('#cropEr2').hide();
if (boolsub) {
boolsub = false;
return false;
}
if (boolsub) {
boolsub = true;
return true;
}
}
else {
$('#cropEr2').show();
return false;
}
}
是形式。
<form name="myForm" action="../controller/new.php" method="POST"
enctype="multipart/form-data" onSubmit="return validateSubmit()">
<table align="left" width="300" height="200">
<tbody>
<tr>
<td>Crop Name : </td>
<td><input type="text" name="crop_id" value=""size="45" id="crop" onkeyup="checkLetters(this.value);"/>
<div id="cropEr2" style="display:none;color:red">Enter crop name</div>
<div id="cropEr3" style="display:none;color:red">You cannot enter symbols, have to enter only letters.</div>
<div id="cropEr4" style="display:none;color:red">You cannot enter numbers, have to enter only letters.</div>
</td>
</tr>
<tr>
<td align="center">
<input class="button"type="reset" value="Clear Deatils" />
</td>
<td><input type="hidden" name="action" value="add_crop" />
<input class="button" id="submit" type="submit" value="Add Details" />
</td>
</tr>
</tbody>
</table>
谁能告诉我,为什么这不起作用?当我输入数字和特殊字符时,显示消息,但它仍然在提交表格。 我正在将此代码加载到facebox中。
它看起来像'boolsub'需要在最外面的范围。 – DevlshOne 2014-09-13 09:18:23
如果使用jQuery,请勿使用onclick/onsubmit属性。使用jQuery连接事件。它允许多个处理程序,并且更容易维护代码。 – 2014-09-13 09:21:54
查看你的JavaScript错误控制台。它说什么? (请注意,您可能必须对其进行配置,以允许消息自表单提交并加载新页面以来持久存在)。 – Quentin 2014-09-13 09:26:20