输入密钥检测+空值然后不应提交表格

时间:2010-09-09 10:04:16

标签: javascript html javascript-events key

我有两个文本字段作为必填项,其余的字段是正常的。现在我必须检测输入密钥并提交表单。我已经这样做但问题是当发生错误时(例如:字段为空)然后我必须停止提交表单但仍然是提交表单。

<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小时内遇到了这个问题。

5 个答案:

答案 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将失败,导致用户首先输入一些细节。