将点击的输入更改为选项标记

时间:2013-10-15 22:05:38

标签: javascript

我有以下代码

<li>
   <input type="checkbox" name="adfil_variants[Size][]" value="25" onclick="javascript: func_adfil_select_checkbox_filter(this);" id="adfil_variants_Size_25" />
   <label for="adfil_variants_Size_25"> 25</label>
</li>

我正在尝试将其更改为类似的选项标签不支持onclick。

<select>

<option  type="checkbox" name="adfil_variants[Size][]" value="n31" onclick="javascript: func_adfil_select_checkbox_filter(this);" id="adfil_variants_Size_n31" /><label for="adfil_variants_Size_n31"> n31</option>

<option type="checkbox" name="adfil_variants[Size][]" value="24" onclick="javascript: func_adfil_select_checkbox_filter(this);" id="adfil_variants_Size_24" /><label for="adfil_variants_Size_24"> 24</option>

 </select>

外部javascript文件:

function func_adfil_select_checkbox_filter(item) {

  document.advancedfilterform.submit();
}

function func_adfil_select_slider_filter() {

  $('#selector_changed').val('Y');

  document.advancedfilterform.submit();
}

function func_adfil_select_color_filter(gid, id) {

  if ($('[id="color_selector_' + gid + '_' + id + '"]').val() == '') {
    $('[id="color_selector_' + gid + '_' + id + '"]').val(id);
  } else {
    $('[id="color_selector_' + gid + '_' + id + '"]').val('');
  }

  document.advancedfilterform.submit();
}

function func_adfil_process_expandable_menu(id) {

  if ($('#' + id + '_content').css('display') == 'none') {
    $('#' + id + '_content').css('display', 'block');
    $('#' + id + '_collaps').css('display', 'block');
    $('#' + id + '_expand').css('display', 'none');
  } else {
    $('#' + id + '_content').css('display', 'none');
    $('#' + id + '_collaps').css('display', 'none');
    $('#' + id + '_expand').css('display', 'block');
  }
}

2 个答案:

答案 0 :(得分:2)

onChange添加到“选择”,而不是onclick添加到每个“选项”。

另外,如果倾向于使用jQuery,你可以给选项一个类名称为“selectClass”,或者id为“selectId”然后使用jQuery将click事件绑定到任何带有“selectClass”类的元素,或者“ selectId“就是这样:

$('.selectClass').change(function(){
    func_adfil_select_checkbox_filter($(this).val());
});

OR

$('#selectId').change(function(){
    func_adfil_select_checkbox_filter($(this).val());
});

答案 1 :(得分:1)

尝试以下方法:

<select onchange="javascript: func_adfil_select_checkbox_filter(this);">
    <option  type="checkbox" name="adfil_variants[Size][]" value="n31" id="adfil_variants_Size_n31" />
        <label for="adfil_variants_Size_n31"> n31
    </option>
    <option type="checkbox" name="adfil_variants[Size][]" value="24" id="adfil_variants_Size_24" />
    <label for="adfil_variants_Size_24"> 24</option>
</select>

您正在寻找onChange属性。