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 は入力ボックスの名前です

2 つの onClick メソッドを実行できることはわかっていますが、何らかの理由で機能しません。入力値を調べて、URL が適切な先頭で始まっていることを確認しようとしています。

私の createOrUpdate 関数は完全に機能しますが、validateForm 関数が呼び出されないようです。何かアドバイス?

4

3 に答える 3

2

別の関数を使用して、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

最初のリターンで壊れていると思うので、両方の関数を1つの関数に入れる方が良いかもしれません。おそらくこれを試してみてください:

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

そして、両方の関数から return を削除します。

于 2013-08-01T17:58:36.713 に答える