即使条件匹配,javascript 表单验证也始终返回 true 并且应该返回 false

Citra45Abadi

我正在尝试根据Vikrant在 jsfiddle的脚本进行 javascript 表单验证

我已经作出了自己的剧本上的jsfiddle过这里它是非常相似,他的代码,但由于某些原因,警报从未触发器,提交表单,即使它不应该。

这也发生在我的本地主机上。

这里也是代码:

function FormValidasi() {
  if (document.getElementById('cabang').value == "tor") {
    alert("Mohon pilih cabang nya");
    return false;
  } else if (document.getElementById('tipe').value == "tor") {
    alert("Mohon pilih tipenya");
    return false;
  }
  return (true);
}
<form name="Formulir" method="post" action="2013.php" onsubmit="return FormValidasi();">
  <input type="text" name="cabang" id="cabang" placeholder="Input cabang">
  <br>
  <input type="text" name="tipe" id="tipe" placeholder="Input Tipe">
  <input type="submit" name="submit" value="submit">
</form>

因此,如果我"tor"在两个字段中输入,或者只在其中一个字段中输入,脚本应该是returning false并阻止表单提交?但是即使我输入了表格也会提交"tor"

代码猴子

代码不工作的原因是你在这里编码的那一行return (true);代码执行你的 JS 是检查IF条件并从那里只返回一个输出。从你总是return true意味着脚本执行 IF 语句的那一行开始,但最终return true即使你的输入字段也有错误。

function FormValidasi() {
  if (document.getElementById('cabang').value == "tor") {
    alert("Mohon pilih cabang nya");
    return false;
  } else if (document.getElementById('tipe').value == "tor") {
    alert("Mohon pilih tipenya");
    return false;
  }  
}
<form name="Formulir" method="post" action="2013.php" onsubmit="return FormValidasi();">
  <input type="text" name="cabang" id="cabang" placeholder="Input cabang">
  <br>
  <input type="text" name="tipe" id="tipe" placeholder="Input Tipe">
  <input type="submit" name="submit" value="submit">
</form>

更新 1

2 个用户提出了合理的论点,我已经更新了代码片段以避免出现如下错误。

未捕获的 ReferenceError:FormValidasi 未在 HTMLFormElement.onsubmit 中定义

这可以避免将表单提交验证功能作为全局功能。

window.FormValidasi = FormValidasi;

更新代码:

window.FormValidasi = FormValidasi;

function FormValidasi() {
  if (document.getElementById('cabang').value == "tor") {
    alert("Mohon pilih cabang nya");
    return false;
  } else if (document.getElementById('tipe').value == "tor") {
    alert("Mohon pilih tipenya");
    return false;
  }  
}
<form name="Formulir" method="post" action="2013.php" onsubmit="return FormValidasi();">
  <input type="text" name="cabang" id="cabang" placeholder="Input cabang">
  <br>
  <input type="text" name="tipe" id="tipe" placeholder="Input Tipe">
  <input type="submit" name="submit" value="submit">
</form>

阅读有关未定义 onsubmit 函数的函数错误的更多信息

更新 2

感谢再次查看代码。OP 具有正确定义的功能。由于问题是他的功能没有正确执行,完全是由于 js 事故造成的。可以通过创建函数来避免global

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

SQL返回true,即使应该返回false

来自分类Dev

我的代码始终返回true,即使它应该为false

来自分类Dev

即使满足规则,codeigniter表单验证也始终返回false

来自分类Dev

角度2-自定义验证器始终返回true,即使条件为false

来自分类Dev

嵌套在另一个IF语句中的vb.net IF语句始终将返回true,并且即使条件指向false,也永远不会运行“ false”代码

来自分类Dev

应该返回true但返回false吗?

来自分类Dev

简单的JavaScript表单验证不会返回true

来自分类Dev

SAS模式匹配时返回true或false

来自分类Dev

管道返回True / False,而不是匹配的行

来自分类Dev

Javascript函数似乎应该在返回false时返回true

来自分类Dev

过程返回True或False

来自分类Dev

查询返回true / false

来自分类Dev

containsKey 返回 True False

来自分类Dev

JavaScript:我正在用JavaScript进行递归,并且尝试从条件中返回true或false,但是什么也没看到

来自分类Dev

$and 运算符总是返回 true,即使我认为它应该是 false

来自分类Dev

javascript hasOwnProperty返回true而不是false?

来自分类Dev

Javascript if else仅返回TRUE或FALSE

来自分类Dev

matcher.find()返回false,但应该返回true

来自分类Dev

MiniTest :: Assertions返回false的测试应该返回true

来自分类Dev

PHP preg_match 应该返回 true 但返回 false

来自分类Dev

密码验证始终返回true

来自分类Dev

即使从ajax验证返回false,onsubmit仍会提交表单

来自分类Dev

isNaN验证始终返回TRUE,但在浏览器中为FALSE

来自分类Dev

护照的req.isAuthenticated始终返回false,即使我硬编码完成(null,true)

来自分类Dev

验证has_many属于用户,并且验证返回true和false

来自分类Dev

为什么false &&(false)?false:true返回true

来自分类Dev

表单提交,即使返回false

来自分类Dev

Java list.contains返回false,应该为true

来自分类Dev

如果语句应该为true时为什么返回false?

Related 相关文章

  1. 1

    SQL返回true,即使应该返回false

  2. 2

    我的代码始终返回true,即使它应该为false

  3. 3

    即使满足规则,codeigniter表单验证也始终返回false

  4. 4

    角度2-自定义验证器始终返回true,即使条件为false

  5. 5

    嵌套在另一个IF语句中的vb.net IF语句始终将返回true,并且即使条件指向false,也永远不会运行“ false”代码

  6. 6

    应该返回true但返回false吗?

  7. 7

    简单的JavaScript表单验证不会返回true

  8. 8

    SAS模式匹配时返回true或false

  9. 9

    管道返回True / False,而不是匹配的行

  10. 10

    Javascript函数似乎应该在返回false时返回true

  11. 11

    过程返回True或False

  12. 12

    查询返回true / false

  13. 13

    containsKey 返回 True False

  14. 14

    JavaScript:我正在用JavaScript进行递归,并且尝试从条件中返回true或false,但是什么也没看到

  15. 15

    $and 运算符总是返回 true,即使我认为它应该是 false

  16. 16

    javascript hasOwnProperty返回true而不是false?

  17. 17

    Javascript if else仅返回TRUE或FALSE

  18. 18

    matcher.find()返回false,但应该返回true

  19. 19

    MiniTest :: Assertions返回false的测试应该返回true

  20. 20

    PHP preg_match 应该返回 true 但返回 false

  21. 21

    密码验证始终返回true

  22. 22

    即使从ajax验证返回false,onsubmit仍会提交表单

  23. 23

    isNaN验证始终返回TRUE,但在浏览器中为FALSE

  24. 24

    护照的req.isAuthenticated始终返回false,即使我硬编码完成(null,true)

  25. 25

    验证has_many属于用户,并且验证返回true和false

  26. 26

    为什么false &&(false)?false:true返回true

  27. 27

    表单提交,即使返回false

  28. 28

    Java list.contains返回false,应该为true

  29. 29

    如果语句应该为true时为什么返回false?

热门标签

归档