2

私はここ1時間ほど、こことGoogleをトロールして成功しませんでした。POSTで送信したいフォームがあります。javascriptは実行され、正常に検証されます。フォームを「送信」することもできます。ただし、その場合は、ページをリロードするだけです。POSTヘッダーは送信されません(FirefoxのFirebugを使用して確認されます)。送信するのではなく、単にページをリロードするかのようです。

このフォームは、addUser.phpページに埋め込まれています。

<form action="addUser.php" method="post" name="NewUser">
<div data-role="field-contain">
    <label label-for="EmpID" class="ui-hidden-accessible">Enter Employee ID</label>
    <input name="EmpID" id="EmpID" placeholder="Employee ID" value="" autocomplete="off" title="Enter Employee ID" type="number" required autofocus>

    <label label-for="UserName" class="ui-hidden-accessible">Enter username</label>
    <input name="UserName" id="UserName" placeholder="Username" value="" autocomplete="off" title="Enter the new username" required>

    <p>
        <label label-for="NewPass1" class="ui-hidden-accessible">Enter Your Current Password</label>
        <input name="NewPass1" id="NewPass1" placeholder="New Password" value="" type="password" autocomplete="off" title="Must be at least 8 characters, with numbers and upper and lower case letters." required>
    </p>

    <p>
        <label label-for="NewPass2" class="ui-hidden-accessible">Enter Your Current Password</label>
        <input name="NewPass2" id="NewPass2" placeholder="Verify Password" value="" type="password" autocomplete="off" title="Re-enter your chosen new password." required>
    </p>
</div>
<button type="button" name="submitButton" value="submitButton" data-theme="d" data-inline="true" data-icon="check" data-iconpos="left" onclick="validateForm ()">
    Add User
</button>

そしてここにJavascriptがあります:

function validateForm()
{
    var reason = "";

    reason += validateEmpID();
    reason += validateUserName();
    reason += validateNewPassword();

    if (reason != "") {
        alert("There are some errors with the data you entered:\n" + reason);
        return false;
    } else {
        document.NewUser.submit();
    }
}

私はsubmitを呼び出すさまざまな方法を試しましたが、すべて同じ結果になりました。どんな助けでも大歓迎です。

ありがとうガレス

4

4 に答える 4

1

私はそれがすべきだと思います

document.forms['NewUser'].submit();

また

document.forms.NewUser.submit();
于 2013-03-20T04:59:32.130 に答える
1

ブラウザがフォームの再読み込みを要求している理由であるreturnfalseを追加していないところがあると思います。そして、送信するためのより良い方法は、単純なボタンを使用する代わりに送信ボタンを使用することです。

于 2013-03-20T06:24:29.710 に答える
0

AJAX投稿を使用してみませんか?それとも、jQuery AJAX POSTの方がいいですか?

$.post(url, data, datatype);

http://api.jquery.com/jQuery.post/

于 2013-03-20T04:58:01.000 に答える
0
function validateForm(event) {
    var reason = "";

    reason += validateEmpID();
    reason += validateUserName();
    reason += validateNewPassword();

    if (reason != "") {
        alert("There are some errors with the data you entered:\n" + reason);
        event.preventDefault();
    }
}

document.getElementById('my_form').addEventListener('submit', validateForm, false);
于 2013-03-20T05:15:11.927 に答える