-2

ユーザーが多くのアドレスを入力できるアドレスフィールドがある1つのフォームがあります。それはユーザー次第です。彼らは多くのアドレスを入力することができます、それはうまく働いています。

ユーザーが同じアドレスを2回入力していないことを確認しています。このために、私はいくつかのjQueryコードを書きました。

jQuery('#EnrollmentEnrollUserForm').submit(function(){
  // alert(jQuery('#EnrollmentServiceAddress1').val());
  // alert(jQuery('.premise-body').html());
  var add=jQuery('#EnrollmentServiceAddress1').val();
  add=add.toLowerCase();
  var address_string =jQuery('table.premise_details').find('tr:first td:last').html();
  // alert(address_string);
  var address = address_string.split('::');
  address[0]=address[0].toLowerCase();
  // alert(address[0]);
  if(add==address[0]){
  alert("These premises already exist. Please enter other premises.");
    return false;
  }
  // checking whether a premise added is same as the added premises or not
  // var premise_check = true;
  var retval = true;
  jQuery('table.premise_details').each(function() {
    var address_string = jQuery(this).find('tr:first td:last').html();
    // alert(jQuery(this).find('tr:first td:last').html());
    var address = address_string.split('::');
    address[0]=address[0].toLowerCase();
    // alert(address[0]);
    if(add==(address[0])){
      alert("These premises were already added... Please enter other premises.");
      retval = false;
    }
  });
  if(!retval){
    return false;
  }
});

このコードはたまにしか機能しません。私が直面している問題は、ユーザーが同じアドレスをもう一度入力するとアラートが表示されることですが、ページは無限ループで読み込まれています。

誰かがそれの何が問題なのか教えてもらえますか?

ご協力ありがとうございました!

4

2 に答える 2

1
jQuery('#EnrollmentEnrollUserForm').submit(function(){
  var add=jQuery('#EnrollmentServiceAddress1').val();

  add=add.toLowerCase();

  var address_string =jQuery('table.premise_details').find('tr:first td:last').html();

  var address = address_string.split('::');

  address[0]=address[0].toLowerCase();

  if(add==address[0]){

  alert("These premises already exist. Please enter other premises.");

    return false;

  }

  jQuery('table.premise_details').each(function() {

    var address_string = jQuery(this).find('tr:first td:last').html();

    var address = address_string.split('::');

    address[0]=address[0].toLowerCase();

    if(add==(address[0])){

      alert("These premises were already added... Please enter other premises.");

    return false;

    }

  });

});

問題が発生する理由は、各関数のループを終了した後にretvalをチェックする呼び出しがあり、retvalの最後の設定値を取得して問題を作成していることを示しています。ここでは、コードを変更し、一致するときにfalseを返します。条件。コードを編集しました。このコードを確認してください

于 2012-05-25T06:00:20.780 に答える
0

今では正常に動作しています。

jQuery('#EnrollmentEnrollUserForm').submit(function(){
              var add=jQuery('#EnrollmentServiceAddress1').val();
              add=add.toLowerCase();
                            // checking whether a premise added is same as the added premise or not
                jQuery('table.premise_details').each(function() { 
                    var address_string = jQuery(this).find('tr:first td:last').html();
                    var address = address_string.split('::');
                    address[0]=address[0].toLowerCase();
                        if(add==(address[0])){
                            alert("This premise is already added... Please enter other premise.");
                            return false;
                        }
                });
    });
于 2012-05-25T07:47:33.867 に答える