1

選択ボックスを変更したときに別の機能を実行するための最良の方法を見つけようとしています。

これは私の選択したHTMLです

<select name="event-recurring">
<option selected="true">None</option>
<option value="daily">Daily</option>
<option value="weekly">Weekly</option>
<option value="monthly">Monthly</option>
</select>

私のjqueryは次のとおりです。

$('select[name=event-recurring] option:selected').change (function (){
//Will Do Something
});

異なる値で何か違うことをするようにするにはどうすればよいですか?

解決:

$('#event-recurring').change(function (){
    var $select = $(this);

    switch($select.val()) {
        case "daily":
           $('#recurring-options').remove();
           $("<div id='recurring-options' class='row'><label>Choose:</label>Choose a Date</div>").insertAfter('#recurring');
            break;
        case "weekly" :
        $('#recurring-options').remove();
              $("<div id='recurring-options' class='row'><label>Choose:</label>Weekly</div>").insertAfter('#recurring');
            break;
        case "monthly":
        $('#recurring-options').remove();
           $("<div id='recurring-options' class='row'><label>Choose:</label>Monthly</div>").insertAfter('#recurring');
            break;
        default:
            $('#recurring-options').remove();
            break;
    }    
});
4

4 に答える 4

3
$('select[name=event-recurring]').change (function (){
    var $select = $(this);

    switch($select.val()) {
        case "daily":
            // do something
            break;
        case "weekly" :
            // do something else
            break;
        default:
            // default case
            break;
    }    
});

<select>名前よりも高速になるため、IDも指定し、それを使用して選択することをお勧めします

于 2009-09-21T21:03:04.187 に答える
1

これが変更関数内で機能することを確認してください。

$('select[name=event-recurring]').change (function (){
    switch ($('option:selected', this).val()) {
      case "daily":
        // do something
        break;
      case "weekly":
        // do something
        break;
      case "monthly":
        // do something
        break;
    }
});
于 2009-09-21T21:02:01.910 に答える
0

選択した値が違うと違うことをするということですか?

もしそうなら、関数で「this」オブジェクトを使用してイベントのソース(この場合はselect)を参照でき、「。val()」または「.text()」を使用してその値を確認できると思います。値を確認し、それに応じて処理します。

お役に立てれば。

于 2009-09-21T21:00:55.203 に答える
0

選択した値に対してサブクエリを使用し、アクションの識別子としてその値属性を取得します。

$('select[name=event-recurring]').change( function() {
    var value = $(this).find(':selected').attr('value');
    if (!value) { // none
        do something
    }
    else if (value == 'daily') {
        do something else
    }
    ...
});
于 2009-09-21T21:04:23.730 に答える