jquery+Ajaxを使用して重複する名前を検証しています。すべてがtrueに戻った後、フォームが送信されないことを除いて、すべてが正常に機能しています
何が起こっていますか
- 名前が入力されていない場合は、名前が必要であることを示すアラートボックスが表示されます->ここでは問題ありません
- 重複する名前が見つかった場合は、名前がすでに存在し、フォームが送信されないことを示すアラートボックスが表示されます->ここでは問題ありません
- 重複する名前が見つからない場合は、アラートボックスが表示されますが(
else
条件の一部が機能していることを証明するため)、フォームは送信されません。フォームを先に進めて、このelse
部分で自分自身を送信してほしい
jQueryコード
$('#form1').submit(function(){
var name = $('#shelf_name').val();
if(name == '')
{
alert('Shelf name is required');
$('#shelf_name').focus();
}
else
{
$.ajax({
type:'post',
url:'check-duplicate-shelf-name.php',
data:{'name':name},
context:this,
success:function(data)
{
if(data == 'stop')
{
alert('Shelf name already exists'); // working if duplicate name is found
}
else
{
alert('else working?'); // alert box is showing up if name is not duplicate
this.submit(); // but after alert, this line not executing
}
}
});
}
return false;
});
HTMLフォームタグ
<form action="add-shelf-post.php" method="post" id="form1">
check-duplicate-shelf-name.phpページ
<?php
include 'confignew.php';
$name = $_POST['name'];
// peforming database operations
.
.
.
// and then
if($db->num_rows($q) == 0)
{
echo 'go';
}
else
{
echo 'stop';
}
私は非常に明白な何かを逃しています。うまくいけば、ここの誰かがそれを指摘することができます。
FirefoxでFirebugをチェックした後、実際にエラーが発生しました。Chromeでテストしているときに表示されませんでした。これがスクリーンショットです。