强制进行多项选择更改,然后阅读事件

时间:2017-03-03 23:53:28

标签: javascript jquery html5

我对jquery比较新。我已经在这个问题上敲了一个星期,试图找到一种方法。

基本上,我有两个相同的选项,在选择时将显示的数字更改为1,然后当更改为不同的选择时,将原始数字更改回0.我的原始代码工作正常,但我想扩展代码这样用户可以保存生成的URL并在以后重新加载他们的选择。

这是有效的HTML。第二个选择也是一样,只有能力ID为2。

<select id="ability1" onchange="attributeChoice( event )"><option value="selected">Select</option><option value="val1">One</option><option value="val2">Two</option><option value="val3">Three</option><option value="val4">Four</option><option value="val5">Five</option><option value="val6">Six</option></select>

工作jquery

function attributeChoice( event ) {

  $( event.currentTarget ).change(function() {
    var attributeChange = this.id;
    var attributeSelect = $(this).find('option:selected').attr('value');

    $('span#' + attributeSelect).html( 1 );
    $('select#' + attributeChange ).on( 'change', function() {
      $('span#' + attributeSelect).html( 0 );
    });
    getTotals();
  });
}

然后这段代码禁用了另一个选择的选定选项,因此无法选择它两次。

    $('select').change(function() {
      $('select#ability1, select#ability2').not(this).children('option[value=' + this.value + ']').attr('disabled', true).siblings().removeAttr('disabled');
      $('select#ability1, select#ability2').not(this).children('option[value=selected]').attr('disabled', true);
    });

从我读过的内容来看,我需要使用.change()来强制选择的onchange进行激活。到目前为止,我没有运气。最初我使用event.target设置了attributeChoice函数,但我了解到它实际上看起来一直回到触发它的开头。我转而使用this和event.currentTarget。

这是我一直在玩的代码。我在这里做错了什么想法? (hattr1是从URL中提取的所选项目的索引)

$('select#ability1').change(function() {
    $('select#ability1 option').eq(hattr1).prop('selected', true);
    $('select#ability1').change();
});

1 个答案:

答案 0 :(得分:0)

如果您想在 <div> <?php $args = array( 'post_type' => 'post' ); $categories = get_categories( $args ); $catlinks = get_category_link( $categories); foreach ( $categories as $category ) { echo '<a href=" '.$catlink->link . '"> <h2>' . $category->name .'</h2></a>'; $args['category'] = $category->term_id; } ?> </div> 事件的option中选择预先确定的select,请在更改事件上调用change,然后使用{{1如您已经做的那样选择$.preventDefault()

&#13;
&#13;
$.prop()
&#13;
option
&#13;
&#13;
&#13;