「false」のメッセージが返された場合にデータを入力できないフィールドが必要です。フィールド「ponumber」はDBをチェックし、そのレコードがすでに存在する場合、ユーザーがその特定のPO番号を使用できるようにしたくありません。基本的に、フィールドを離れてメッセージを表示すると、空白になります。このスクリプトは、checkponumberajaxphpファイルからの誤った戻りに基づく入力を許可することを除いて完全に機能しています。
$(document).ready(function () {
var validateponumber = $('#validateponumber');
$('#ponumber').keyup(function () {
var t = this;
if (this.value != this.lastValue) {
if (this.timer) clearTimeout(this.timer);
validateponumber.removeClass('error').html('<img src="/images/ajax-loader.gif" height="16" width="16" /> checking availability...');
this.timer = setTimeout(function () {
$.ajax({
url: 'includes/checkponumberajax.php',
data: 'action=check_ponumber&ponumber=' + t.value,
dataType: 'json',
type: 'post',
success: function (j) {
validateponumber.html(j.msg);
}
});
}, 200);
this.lastValue = this.value;
}
});
});
<input type="text" name="ponumber" value="<?=@$_REQUEST['ponumber']?>" id="ponumber" />
そして私のcheckponumber.phpファイルはこのように返されます
if ($records != 0) {
$response = array(
'ok' => false,
'msg' => "The selected PO# is not available");
} else {
$response = array(
'ok' => true,
'msg' => "This PO# is free");
}
編集:解決しました!
これを使用した@bourchのおかげで、falseに一致する値に達するとフィールドが空白になりました。
if(j.ok != true){$("#ponumber").attr("value", "");}