【问题标题】:javascript return true not workingjavascript返回true不起作用
【发布时间】:2011-11-28 14:41:16
【问题描述】:

我使用以下代码进行 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,并且表单仍然没有被提交。

我看到人们提出的一些查询在提交表单时返回错误结果。但这完全相反..到目前为止我还没有找到解决方案。
谁能帮我解决这个问题?

【问题讨论】:

  • 您的&lt;input&gt; 元素是否在&lt;form&gt; 元素中?
  • 而且您不会“抛出”警报消息;)
  • 你应该看看使用 jquery。它是一个 javascript 库,用于处理页面上的元素,就像您在这里尝试做的那样。我不确定document.field 应该返回什么。看看 jquery,它更容易并且兼容跨浏览器。
  • 我建议你看看 VanadiumJS。它会让你的生活轻松很多。

标签: javascript


【解决方案1】:

试试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;
}

【讨论】:

【解决方案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
}

【讨论】:

    【解决方案3】:

    我建议在&lt;form ... onsubmit="return fnval()"&gt; 的形式中使用onsubmit, 尝试添加它并将return false 放在函数的基础上。

    【讨论】:

      【解决方案4】:

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

      【讨论】:

        【解决方案5】:

        语法错误:

        type="submit"
        

        不是

        type=submit
        

        【讨论】:

        • 浏览器对此没有问题
        • 其实,不,无论好坏。
        • 这在 HTML 4.01 中有效。 (引号要求由 XML 添加。)
        猜你喜欢
        • 2019-01-06
        • 2012-04-22
        • 1970-01-01
        • 2018-10-10
        • 1970-01-01
        • 2012-10-20
        • 2010-12-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多