1

表格:

echo '<form id="newForm" name="newForm" action="../../../admin/info/apps" method="post" enctype="multipart/form-data" onsubmit="return createOrUpdate(); return validateURL();">';
echo '<input type="hidden" name="submit" />';
echo '<input type="submit" value="Update" style="margin-right: 5px;" />';

功能:

function validateURL()
{
  var http = document.newForm.URL.value.indexOf("http://");
  var https = document.newForm.URL.value.indexOf("https://");
  if (http!=0 || https!=0)
  {
    alert("Not a valid URL: must start with http://");
    return false;
  }
}

URL是输入框的名称

我知道您可以执行两种 onClick 方法,但由于某种原因它不起作用。我正在尝试查看输入值以检查 URL 是否以正确的开头。

我的 createOrUpdate 函数完美运行,但看起来 validateForm 函数从未被调用过。有什么建议吗?

4

3 回答 3

2

使用不同的函数来测试两个函数的返回

html

<form id="newForm" name="newForm" action="../../../admin/info/apps" method="post" enctype="multipart/form-data" onsubmit="return myFunction();">';

JS

function myFunction() {
   var first = createOrUpdate(); 
   var second = validateURL();
   return (first && second);
}

你也可以像 DCoder 在他的评论中提到的那样做return createOrUpdate() && validateURL();内联,我这样做是为了将内联代码保持在最低限度。

于 2013-08-01T17:57:04.240 回答
0

将两个功能合二为一:

function validateForm() {
    return createOrUpdate() && validateURL();
}

这应该是您表单的onsubmit属性onsubmit="return validateForm();": .

URL另外,我在您的表单中没有看到任何带有名称的字段。你确定它确实存在吗?

于 2013-08-01T18:06:09.180 回答
0

也许最好将两个函数放在一个函数中,因为我认为它在第一次返回时会分解,也许你应该试试这个:

function validate(){
    createOrUpdate(); 
    validateURL();
}

并从这两个函数中删除返回。

于 2013-08-01T17:58:36.713 回答