0

私はそれを作る方法が完全に混乱しています..ここに私の問題があります。

n個のカスタマイズされたコンボボックスがあります(サーバー側から動的に作成されます)。ここで、各コンボ ボックスの値を保存し、クライアント側で検証する必要があります。コンボ ボックスのいずれかが val() == 0 (オプションが選択されていないことを意味します) の場合、エラー メッセージを表示する必要があります。すべてのコンボ ボックスの値が選択されている場合は、ポップアップに div を表示する必要があります。保存ボタンをクリックすると、これらすべてのアクションが発生する必要があります。

これらのコンボ ボックスは動的にレンダリングされるため、その ID を使用できません。私の考えは、コンボと呼ばれるクラス名を付けて、検証する必要があるということです。ここに私のコードがあります、

HTML (動的に生成)

 <select class="combo">
     <option selected="selected" value="0"></option>
     <option value="1">Employee First Name (HR)</option>
     <option value="2">Employee last Name (HR)</option>
     <option value="3">Employee number (HR)</option>
      <option value="4">NINO (HR)</option>
 </select>

jQuery

   $(document).ready(function(){

$('#save').click(function(){


    var myLength = $('.combo option:selected').length;


    alert(myLength);
    if(myLength > 0){
        alert('popups here');
        count=count+1;
        alert(count);
         var maskHeight = $(document).height();
         var maskWidth = $(window).width();
         $('#mask').css({'width':maskWidth,'height':maskHeight});
         $('#mask').fadeTo("fast",0.8); 
         var winH = $(window).height();
         var winW = $(window).width();
         $('.popups').css('top',winH/2-$('.popups').height()/2);
         $('.popups').css('left',winW/2-$('.popups').width()/2);
         $('.popups').show(); 
         } 
         else 
         {
         alert('No popups');
         }
         return false;
});

 });

アイデアが機能していません。続行する方法を提案してください...どうもありがとう:)

4

3 に答える 3

0
var trace = false;
$('#save').on('click', function() {
    $('select.combo').each(function() {
        if(this.value == 0){
            trace = true;
            return;
        }           
    });
    if(trace) {
        // all combo not selected
        alert('Please select all combo');
        trace = false;
    } else {
        // all selected
        alert('Thanks..');
    }
});
于 2012-04-19T06:34:05.263 に答える
0

試す

HTML

<select class="combo" multiple="multiple">
 <option selected="selected" value="0" >--SELECT ONE--</option>
 <option value="1">Employee First Name (HR)</option>
 <option value="2">Employee last Name (HR)</option>
 <option value="3">Employee number (HR)</option>
 <option value="4">NINO (HR)</option>

</p>

jQuery

var foo = {};

$('#submit').live('click', function() {
    $('select.combo').each(function(i) {
        var selected = $(this).val();
        foo[i] = selected;
    });

    //this will remove first value ( blank having value=0)
    var finalOutput = jQuery.grep(foo[0], function(value) {
        //this will unselect the blank value
        $('.combo option:eq(0)').prop('selected', false);
        return value != "0";
    });

    if ($.isEmptyObject(finalOutput)) {
        alert('please select atlest one')
    }
    else {
        alert('Output:' + finalOutput)
    }
})​​

Working DEMO

于 2012-04-19T05:29:33.027 に答える
0

このアプローチはどうですか:

$('#save').click(function(){
   var comboLength = $('.combo').length;
   var selectedLength = $('.combo option:selected[value!=0]').length;

   if (comboLength == selectedLength) { /* code for valid case*/}
   else { /*code for invalid case*/; return false;}
})
于 2012-04-19T05:32:04.043 に答える