2014-12-07 55 views
1

昨天,我在stackexchange上問了一個問題,Sean和A. Wolff已經給出了我所問的問題的滿意答案。 The link is here問題在於,在下拉菜單的頂部有一個疊加層,如果它發生變化,它將不可見。我們刪除了這個覆蓋圖,它工作。使用JavaScript或JQuery模擬用戶點擊

我今天繼續在我的項目上工作,我意識到我問的問題,因此答案不完全是我想要的。我想要的是,我真的想要確切的用戶點擊。這意味着,在我們實現我們的目標時,我們不應該從頁面中刪除任何類別或元素。

這是一個簡約的代碼。有一個下拉菜單,如果您在菜單中選擇「Bedrag」,則會在下拉菜單旁邊打開一個文本框。任何人都可以幫助我如何使用JQuery或JS選擇「Bedrag」?請注意,沒有元素或類或任何應該刪除。它應該選擇下拉菜單中的項目並觸發信號。我一直在努力嘗試很多,但事實證明,如果沒有你們的幫助,我無法做到這一點。

下面是代碼:http://jsfiddle.net/so0h96ns/1/

的下拉列表中的代碼是:

<div data-custom-select class="select-price "> 
    <label for="price" data-label-hide class="has-hidden-label">Selecteer prijs</label> 
    <select name="adv.bedragplaats" id="price" class="price-field" data-price data-set-as-required > 
    <option value="">Kies...</option> 
    <option value="&lt;amount&gt;" >Bedrag</option> 
    <option value="gratis" >Gratis</option> 
    <option value="ruilen" >Ruilen</option> 
    <option value="teab" >Prijs overeen te komen</option> 
    <option value="nvt" >Niet van toepassing</option> 
    </select> 
</div> 

回答

1

這三個部分

 //first assign the change event which opens the box on the side 
     $('.price-field').on("change", function() { 

      if ($(this).val() === "<amount>") { 
       console.log("the amount option has been selected now open THE BOX"); 
      } 

     }) 

      //then select the bedrang 
       .find('option[value="<amount>"]') 

      //then trigger the change event to open the box 
       .attr("selected", true).trigger("change"); 

這裏是小提琴http://jsfiddle.net/orchid1/vtrsgLnr/1/

+0

埃德加嗨。感謝您的時間和答覆。但是,如果我運行你的代碼,它不會選擇「Bedrag」?難道我做錯了什麼? – Dundar 2014-12-07 19:55:31

+0

這裏是jsfiddle http://jsfiddle.net/orchid1/wLeuuxbe/ – 2014-12-07 19:57:46

+0

再次感謝,但我們再次回到我在上面的文字中提到的問題。在你的例子中,你採取了孤立的片段。所以你沒有這個重疊的東西。當我嘗試你的代碼時,它甚至沒有設置下拉值。好吧,它確實,但顯然在後臺。我的實際問題是如何使用.find('option [value =「」]')設置項目值後觸發正確的信號。顯然.attr(「selected」,true).trigger(「change」);不這樣做。這裏是我的代碼,http://jsfiddle.net/so0h96ns/3/ 你同意我的意思嗎?謝謝。 – Dundar 2014-12-07 20:06:23