Javascript无法以某种方式工作 - 不确定我做错了什么:/

时间:2013-12-09 14:44:35

标签: javascript forms return onsubmit

我不确定出了什么问题所以我只是想问你们所有人。我想在将它们发送到我的PHP脚本之前通过JS验证一些变量,但不知怎的,它不能按我的意愿工作,我不知道为什么。这是我的示例代码:

HTML

<script src="jadd.js" type="text/javascript"></script>
<form name="jadd" action="./func/add_job.php" method="post" onsubmit="return vf()">
<a href="javascript:document.jadd.submit()">random submit</a>
...
<input type="text" size="100" maxlength="150" name="jt" />
...
</form>

Javascript(jadd.js):

function vf() {
var x=document.forms["jadd"]["jt"].value;
  if (x==null || x=="") {
    alert("Field must be filled out");
    return false;
  }
}

3 个答案:

答案 0 :(得分:1)

你有两个问题编辑了你的问题。

  1. 当您以编程方式提交表单时,不会触发提交事件。使用真实的提交按钮(<input type="submit">),而不是使用JavaScript而不是HTTP URI的链接。 (如果你真的想,你可以使用CSS使按钮看起来像一个链接)。
  2. 您正在尝试调用名为vf的函数,但您已定义了一个名为vf_addjob的函数,您需要使用相同的名称!

答案 1 :(得分:0)

尝试使用vf_addjob()代替vf()

应该是:

onsubmit="return vf_addjob()"

答案 2 :(得分:0)

  1. 删除a href...按钮。
  2. form<input type="submit" value="click me">
  3. 内添加

    应该是这样的:

    <script src="jadd.js" type="text/javascript"></script>
    <form name="jadd" action="./func/add_job.php" method="post" onsubmit="return vf()">
    ...
    <input type="text" size="100" maxlength="150" name="jt" />
    ...
    <input type="submit" value="click me">
    </form>
    

    在JS函数中添加return true;也是一种好习惯。但这更符合代码可读性。