私はajax電子メール検証でフォームを作成しました。私の問題は、1つ以上の電子メール入力フィールドが必要なことです。私が書いたjqueryのコードは、1つだけで動作します。効率的ではなく、電子メールフィールドの量も一定ではないため、コピー&ペーストでIDを変更するソリューションを使用したくありません。jqueryセレクタ - idの問題
これは私のjsファイルです:
// 0 - email not valid
// 1 - email valid
$(document).ready(function() {
$("#ClientEmail_0").focusout(function() {
// span with loader gif
$("#ajax_status_0").css('display','inline');
// span with the results
$("#email_ajax_result_0").css('display','none');
var $email = $("#ClientEmail_0").val();
$.post("/reservations/reservations/ajax_check_email/",{data:{Client:{email:$email}}},function(data) {
$("#ajax_status_0").css('display','none');
if (data == 1) {
$("#email_ajax_result_0").attr('class','ajax_success');
$("#email_ajax_result_0").text('Email is available');
}
if (data == 0){
$("#email_ajax_result_0").attr('class','ajax_error');
$("#email_ajax_result_0").text('You are already our client. Proceed with the reservation.');
}
$("#email_ajax_result").css('display','inline');
});
});
});
これが私の見解です:
<?php
for($i = 0 ; $i < $this->params['nr'] ; $i++){
echo $this->Form->input('Client.'.$i.'.email', array(
'label'=>$this->Html->tag(
'span',
$html->image("icons/ajax-loader.gif", array(
"alt" => "loading",
)),
array(
'id' => 'ajax_status_'.$i,
)),
'div'=>'IconMail clearValue',
'after' => $this->Html->tag(
'span',
'',
array(
'id' => 'email_ajax_result_'.$i,
)),
));
}
?>
ありがとう!
私はなぜあなたはクラス以上のIDを使用する必要があります表示されません。 – zzzzBov
はい、あまりにも多くのIDを使用する必要はなく、1つのIDと残りのIDをクラスとして使用する必要はありません。私はこれを変更します。ありがとう。 – Michal