jQuery Ajaxを使用してフォームを送信しています。いつ、いつ成功しないのですか:jQuery Ajaxメソッドでvalueが実行されますか? (ヘッダーの場所は変更されません)
データは正常に送信されましたが、少し問題があります。このコードでコメント文を追加すると、成功:function(){}は実行されません(場所は変更されません)。
Q. 1これらのステートメントを削除すると、そのステートメントが実行されます。私はこの論理を理解していません。実際に実行されるのはいつですか?xyのチェックはこれにどのように影響しますか?
ここに私のアヤックスコードです:
$(document).ready(function(){
$("#button").click(function(){
**//FOLLOWING TWO LINES MAKES SUCCESS NOT RUN**
//var **xy**= $("#digits").val();
//if(xy!=""){
$.ajax({
url: "submitform.php",
type: "POST",
data: $('#signupform').serialize(),
success: function(result){
$(location).attr('href', 'login2.php');
},
error: function(){
alert(error);
}
});
// }
});
});
ここでは、入力タグ懸念しています:私はevent.preventDefaultを(書き込み時)
<form id="signupform" name="form1" method="post" enctype="multipart/form-data">
<input id="digits" type="text" name="phone" maxlength="10" placeholder="Enter your phone no." required />
......
Q.2を。送信ボタンのデフォルトアクションを停止するには、入力フィールドの属性が必要です。が機能しません。それはなぜそうですか?それは解決することができますか?
約Q1:あなたのフォームには 'digits'というIDの要素がありませんので、' xy'は常に空になります。 –
Q2について:送信ボタンで 'preventDefault'を呼び出すと、デフォルトの動作(送信開始)が妨げられ、入力フィールドはチェックされません。あなたは 'form'の' submit'イベントをリッスンして、これのデフォルトの振る舞いを防ぐ必要があります。なぜなら、submitイベントはinput要素のチェックの後でフォームが送信される前に送信されるからです。 –
修正できますか、別のアプローチを使用する必要がありますか?たとえば、PHPやJavaScriptの検証ですか? –