18

这是我的代码,alert如果文本框为空,它应该会引发一条消息:

function a(id)
{
    var n=document.getElementById(id).value;
    if (n.length < 1)
    {
        window.alert("Field is blank");
        return false;
    }
}

我得到的错误是该字段onChange第一次没有得到验证。但是当文本框填充了一些数据并被删除时,现在会OnChange触发并alert显示消息。我该如何修复这个错误?

4

3 回答 3

29

onchange只有当文本框的值与之前的值相比发生变化时才会起作用,所以第一次它不起作用,因为状态没有改变。

所以最好使用onblur事件或提交表单。

function checkTextField(field) {
  document.getElementById("error").innerText =
    (field.value === "") ? "Field is empty." : "Field is filled.";
}
<input type="text" onblur="checkTextField(this);" />
<p id="error"></p>

(或旧的现场演示。)

于 2013-02-02T06:22:49.057 回答
3

假设您要提交表单,您的验证应该在您的活动之前进行。

无论如何,如果您希望在 onchange 上进行此操作,那么这里是代码。

function valid(id)
{
    var textVal=document.getElementById(id).value;
    if (!textVal.match(/\S/)) 
    {
        alert("Field is blank");
        return false;
    } 
    else 
    {
        return true;
    }
 }
于 2013-02-02T06:12:57.843 回答
0
function valid(id)
    {
        var textVal=document.getElementById(id).value;
        if (!textVal.match("Tryit") 
        {
            alert("Field says Tryit");
            return false;
        } 
        else 
        {
            return true;
        }
     }

用它来表达事物

于 2020-07-10T12:35:17.610 回答