javascript返回true不工作

时间:2011-11-28 14:41:17

标签: javascript

我已经使用以下代码进行javascript验证,根据条件返回true或false

javascript块

function fnval()
{
 if(document.field.value == "")
 {
  alert("Invalid value");
   return false;
 }else{
   return true;
 }
}

这是我的HTML:

<Input type=submit name="sub" onClick="return fnval()">

因此,js块检查是否输入了字段值。如果不是,则抛出警告消息并返回false,因此表单不会被提交 但是如果值不为空,则返回true,但表单仍未提交。

我见过一些人提出的问题,其中返回false会导致提交表单。但这恰恰相反......目前我无法找到解决方案。
有人可以帮我这个吗?

5 个答案:

答案 0 :(得分:3)

尝试getElementsByName

function fnval()
{
 if(document.getElementsByName('field')[0].value == "")
 {
  alert("Invalid value");
   return false;
 }else{
   return true;
 }
}

<小时/> getElementsByName虽然没有IE支持。也许:

function fnval()
{
 if(findInput('field')[0].value == "")
 {
  alert("Invalid value");
   return false;
 }else{
   return true;
 }
}
function findInput(name) {
    var elements = document.getElementsByTagName('input'),
        length = elements.length,
        i = 0,
        results = [];
    for(i; i<length; i++) {
        if (elements[i].name === name) {
            results.push(elements[i]);
        }
    }
    return results;
}

答案 1 :(得分:2)

您需要添加表单名称和表单值。类似的东西:

if ( document.formName.fieldName.value == "" )

例如,使用这种HTML:

<form method="post" onsubmit="">
Password: <input name="password" type="text" /><br />
</form>

js:

if (document.form.password.value == "") {
    //empty
}

答案 2 :(得分:2)

我建议在表单onsubmit中使用<form ... onsubmit="return fnval()">, 尝试添加并将return false放在函数的基础上。

答案 3 :(得分:0)

无论你在js做什么。但是如果你填写了表单元素元素的动作标签,表单将会提交。

答案 4 :(得分:-1)

语法错误:

type="submit"

不是

type=submit