【问题标题】:trigger button to be clicked after option from drop down is selected选择下拉选项后要单击的触发按钮
【发布时间】:2013-01-14 06:29:46
【问题描述】:

我有以下问题:

当从下拉列表中选择一个选项时,它应该被添加到搜索框中。这行得通。但是现在我希望在发生这种情况后自动单击“GO”按钮。使用我到目前为止的代码,我正在尝试使用

  $('input[name="go"]').trigger("click");

部分来实现这一点。然而,问题在于,一旦单击下拉框(因此在可以选择选项之前),就会触发最后一个事件。我尝试了很多东西,但我对 jquery 不是很有经验。 (顺便说一句:我正在使用预先存在的搜索字段和按钮)

这是 javascript/jquery 代码:

    $(document).ready(function(){

    $('select[name="Articlecategories"]').bind('click', function() {



     $('select[name="Articlecategories"]').change(function () { 
           var str = "";
           $('select[name="Articlecategories"] option:selected').each(function () {
                str += $(this).text() + " ";
                 });
            $('input[name="searchfield"]').val(str);
     })

    .change();

    $('input[name="searchfield"]').change(function () { 
    $('input[name="go"]').trigger("click");
     }) 
    .change();

    });


    });

这是html:

  <select name="Artikelcategorien"  >
    <option selected="selected" disabled>select an option</option>
    <option >Candy</option>
    <option>Taffy</option>
    <option>Caramel</option>
    <option>Fudge</option>
    <option>Cookie</option>
  </select>

<input type="text" name="searchfield" value="" >
    <input type="submit" name="go" value="GO" >

【问题讨论】:

    标签: jquery select button triggers click


    【解决方案1】:

    好吧,没关系,我设法解决了它。也许不是最优雅的解决方案,但它确实有效:

        $(document).ready(function(){
    
        $('select[name="Articlecategories"]').change(Klikzoeken)
    
    
        });
    
        function Klikzoeken() {
    
         $('select[name="Articlecategories"]')
               var str = "";
               $('select[name="Articlecategories"] option:selected').each(function () {
                    str += $(this).text();
                     });
                $('input[name="searchfield"]').val(str);
    
        $('input[name="go"]').click();
    
    
        }
    

    【讨论】:

      【解决方案2】:

      您可以只提交表单(当然假设它存在于表单中):

      $('form#formId').submit();
      

      【讨论】:

        【解决方案3】:

        您可以通过以下方式提交表单

        $("formID").submit();
        

        【讨论】:

          【解决方案4】:

          .trigger() 只执行附加到某个元素的函数,而不执行该元素的默认行为。

          如果form 元素中包含以上所有内容,您可以使用它。

          $("form").submit();
          

          【讨论】:

          • 不幸的是,我认为这并不容易。下拉列表(选择标记)不是表单的一部分。然而,该按钮是一个提交按钮,但它最初是为了与“搜索字段”结合使用。我想修改代码,以便用户可以从下拉列表中选择一个单词,该单词被放置在搜索字段中,然后自动触发 GO 按钮。
          猜你喜欢
          • 1970-01-01
          • 2015-05-26
          • 1970-01-01
          • 1970-01-01
          • 2020-01-07
          • 2011-02-10
          • 2014-07-07
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多