确定是否已在另一个选择字段中选择了值

时间:2012-07-05 21:57:11

标签: jquery

全部, 我有以下选择框:

<select class="event_selection" name="Event[]" id="Event_<?php echo $i; ?>" > 
    <option value="original">Select Event...</option> 
    <option value="1">One</option> 
    <option value="2">Two</option>
</select>

我的表格上有几个。当用户从下拉列表中选择一个值时,我想确保在另一个具有相同类别的选择中尚未选择该值。

有一种简单的方法吗?如果是这样,请指点我正确的方向?

谢谢!

3 个答案:

答案 0 :(得分:1)

 $("select.event_selection").change(function(){
    if ($(this).val() == $("select.event_selection").not(this).val()) {
        // match found
        alert('You have already selected this value');
        $(this).val('original'); //sets this back to original        
    }
 });

答案 1 :(得分:1)

我已经做到了这一点,你不能两次选择任何值:

var $coll = $( '.event_selection' ).on( 'change', function () {
    $coll.children().prop( 'disabled', false );
    $coll.each(function () {
        var val = this.value;
        if ( val === 'original' ) return;
        $coll.not( this ).children( '[value="' + val + '"]' ).prop( 'disabled', true );
    });
});

现场演示: http://jsfiddle.net/QVbQ6/2/


var $coll = $( '.event_selection' );

$( '#timeline_table' ).on( 'change', '.event_selection', function () {

    // my code
    $coll.children().prop( 'disabled', false );
    $coll.each(function () {
        var val = this.value;
        if ( val === 'original' ) return;
        $coll.not( this ).children( '[value="' + val + '"]' ).prop( 'disabled', true );
    });

    // your other code...

});

答案 2 :(得分:0)

$(".event_selection").change(function(){
 if($(".event_selection:selected[value=" + $(this).val() + "]").length > 1) {
  // there are more than one select with this class and same value, do whatever you need
 }
});