1

非常に単純なフォーム (.cfm ページ) があります。JavaScriptファイルでAJAX経由でフォームを送信しています。フォームは IE、Safari、Chrome では正常に動作しますが、FF (v18.0) では動作しません。

ここに私のフォームがあります:

<form name="LoginForm">
<input class="newstext" type="text" name="userLogin" id="userLogin">
<input class="newstext" type="password" name="passLogin" id="passLogin">
<input type="button" name="login" value=" Login " onClick="validateLogin();">
</form>

Javascript コード:

function validateLogin() {

    if (document.getElementById('userLogin').value == '') {
    alert('Please enter your username');
    document.getElementById('userLogin').style.backgroundColor='yellow';
    document.getElementById('userLogin').focus();
    return false;
} 

if (document.getElementById('passLogin').value == '') {
    alert('Please enter your password');
    document.getElementById('passLogin').style.backgroundColor='yellow';
    document.getElementById('passLogin').focus();
    return false;
} 

ColdFusion.Ajax.submitForm("LoginForm", "loginForm_action.cfm", submitLoginCallback, submitLoginerrorHandler);
return true;

}

ログインしようとすると、フォーム要素の値が渡されません。そのため、cfc にヒットすると、cfc は「要素 USERLOGIN が FORM で定義されていません。
エラーは 9 行目で発生しました」と言います。何か案は?

4

2 に答える 2

1

あなたが質問を投稿したとき、StackOverflow はあなたにこれを見るように勧めましたか?

ここから編集開始

あなたが見るように招待されなかったなら、あなたはそうではありませんでした.

6 票を得た回答は、"document.getElementsByName()は配列を返すため、インデックスでアクセスする必要があります: document.getElementsByName('staff_counter')[0](これらの数によって異なります)。

プロパティにアクセスして、length一致した要素の数を確認することもできます。」

未定義の変数の問題が提示されたことを考えると、それは理にかなっています。

于 2013-01-10T02:21:22.943 に答える
0

さて、この問題を解決するために私がしたことは次のとおりです。

フォームが Firefox によって処理されたときに、私の<form>タグがタグ内に<table>あり、対応する終了タグ ( </form>) もタグ内にあることが原因で、不正な形式の HTML があったよう<table>です。フォーム タグをテーブルの周りに移動すると、フォームは期待どおりに機能します。

理解するのが困難だったこの問題を解決するのを手伝ってくれてありがとう。最初の質問で混乱してしまったことをお詫びします。

デビッド

于 2013-01-11T02:03:01.620 に答える