2017-11-28 17 views
-1

私はフォーム検証

@using (Html.BeginForm(null,null,FormMethod.Post, new {onsubmit="return 
validateForm(this);", name = "frm", id = "frm" })) 

を持っており、私のJSファイルに私はこのコード

function validateForm(form) { 
alert("Called") 
var x = form[model.username].value; 
if (x == "") { 
    alert("Name must be filled out"); 
    return false; 
} 
} 

私はJSでちょうどアラートを使用する場合、それが動作しています。しかし、フォームに渡すと、ユーザー名が空白であっても残りのデータが送信されます。 ASP MVCを使用しています5

どうかお願いしますか?

+1

警告が表示されますか?ブラウザのデバッグコンソールにエラーはありますか?ブラウザでこれをデバッグすると、 'x'の値は何ですか? – David

+0

Uncaught ReferenceError:HTMLFormElement.onsubmitのvalidateFormでモデルが定義されていません – user2904400

+0

'model'変数が定義されていません。あなたのクライアント側のコードでサーバー側のコードを使用しようとしていますか?なぜ具体的に 'model.username'がその文脈にあるのでしょうか?なぜですか? JavaScriptコードの入力値を取得しようとしている場合、その入力は何ですか? – David

答えて

0

model.usernameには、"johndoe123"が含まれているとします。その値が使用されます。つまり、実際に値を返すことはほとんどないと思われるform["johndoe123"].valueを意味します。 modelまたはmodel.usernameが未定義の場合は、エラーが発生することさえあります。

おそらく名=「ユーザ名」またはそのような何かを持っているフォームフィールドを要求するためのものなので、私はそれを行う方法について例をあげる:

var form = document.getElementById("theForm"); 
 
console.log(form); 
 
console.log(form["username"]); 
 
console.log(form["username"].value);
<form id="theForm"> 
 
    <input type="text" name="username" value="something"> 
 
</form>