我有两个文本字段作为必填项,其余的字段是正常的。现在我必须检测输入密钥并提交表单。我已经这样做但问题是当发生错误时(例如:字段为空)然后我必须停止提交表单但仍然是提交表单。
<input autocomplete="off" type="text" id="first_name" size="10"
onkeypress="if(event.keyCode == 13){
document.getElementById('btn_search').click();
return false;}">
这里btn_search是搜索按钮的id,我必须执行它。但是当字段为null时,则不应提交表单。给我一些建议??
即使我在JavaScript文件中创建单独的函数,我也得到相同的响应。 实际上我在过去48小时内遇到了这个问题。
答案 0 :(得分:3)
我建议您在表单的onsubmit
操作中执行验证,而不是在输入中处理按键操作:
<form action="/foo" onsubmit="return validate();">
<input autocomplete="off" type="text" id="first_name" size="10" />
<input type="submit" value="Search" />
</form>
在validate
函数中:
function validate() {
var firstName = document.getElementById('first_name').value;
var isFormValid = (firstName != '');
return isFormValid;
}
答案 1 :(得分:1)
最后,我解决了这个问题。在这里,解释 我错过的是返回价值。这里“btn_search”是按钮的id,通过它调用一个单独的函数。我已经提出了验证。 现在整个代码粘贴在这里。请看看。
<input autocomplete="off" type="text" id="first_name"
onkeypress="return enterKeyPress(event);" />
Javascript功能
//Enter-listener
function enterKeyPress(e)
{
if (e.keyCode == 13) {
document.getElementById('btn_search').click();
return false;
}
}
非常感谢您的建议。
答案 2 :(得分:0)
document.getElementById('btn_search').click(function()
{
if($('#first_name').val() == "") {
// submit form here
}
});
这将检查“first_name”的值是否为空。它不会为null,因为它是一个文本框。或者您想在提交表单之前检查文本框是否存在?
答案 3 :(得分:0)
您也可以这样做:)
<input autocomplete="off" type="text" id="first_name" size="10" onkeypress="if(this.value.replace(/^\s+|\s+$/g,'') != '' && event.keyCode == 13){ document.getElementById('btn_search').click(); return false;}">
答案 4 :(得分:0)
只需将其添加到表单
中的onsubmit事件即可<form action="http://google.com" onsubmit="return (document.getElementById('first_name').value != '')">
<input autocomplete="off" type="text" id="first_name" size="10" />
</form>
return (document.getElementById('first_name').value != '')
只返回输入元素的布尔状态,如果为空,则bool将为false,因为onsubmit将失败,导致用户首先输入一些细节。