6

以下のjavascript関数を呼び出しました

function formOnSubmit() {
  if (document.forms[0].ref_no.value == "") {
    if (document.forms[0].acc_code.value == "") {
      if (document.forms[0].vendor_code.value == "") {
        if (document.forms[0].acc_service_tax.value == "") {
          if (document.forms[0].acc_doc_name.value == "") {
            alert('Please enter atleast one attribute value');
            return false;
          }
        }
      }
    }
  } else {
    return true;
    document.forms[0].submit();
  }
}

ここで、ref_no、acc_code、vendor_code、acc_service_tax、acc_doc_name はテキスト ボックスです。

問題は、ref_no texbox に何かを入力するとフォームが 2 回送信され、残りのテキスト ボックスに対してフォームが 1 回送信されることです。

ref_no 値を入力するとフォームが 2 回送信される理由を知りたいです。

4

8 に答える 8

10

最後に、自分自身のために、そしてできれば他の人のためにそれをまっすぐにしました. 「ボタン」を使用していて を使用する場合はdocument.forms[0],submit()、 button を指定しますtype="button"。それ以外の場合は、デフォルトのボタン タイプが使用されます。submit私の場合、IEではフォームが 2 回送信されます。

于 2015-10-10T16:42:54.113 に答える
1

else 状態のものを使用してください。

次のいずれかを使用します。

document.forms[0].submit();

そうしないと

return true;

また、in else 条件を使用している場合return true、関数はイベントのフォーム タグで呼び出しますonSubmit

<form action="//your action" method="//your method" onsubmit="return formOnSubmit()">
于 2013-05-02T09:15:22.647 に答える