2017-03-04 45 views
2

我有這個JavaScript代碼是在Framework7內用於phonegap應用程序。我希望在選擇該選項後立即在表格中更改值;當第一次選擇一個值時這不起作用,但在第二次選擇時完美地工作。選擇onchange事件不適用於第一次

$('#mySelect931').on('change', function (e) { 

    var value = document.getElementById("mySelect931").value; 
     //myApp.alert(value); 

     if(value == 'M4'){ 
      var a = 'M4'; //value of d 
      var b = '14'; // value of b to 125 
      var c = '-'; //value of b to 200 
      var d = '-'; // value of b over 200 
      var e = '2.8'; // value of k 
      var f = '7.66'; // value of e 
      var g = '7'; // value of s 
     } 
}); 

這裏是html代碼。

<select id="mySelect931" style='background-color: #e3e3e3; color: black;'> 
    <option value="0" selected="selected">Select Value</option> 
    <option value="M4">M4</option> 
    <option value="M5">M5</option> 
    <option value="M6">M6</option> 
</select> 

回答

0

我試圖運行你的代碼和它的作品完美的罰款,甚至framework7加載。所以,至少我們知道framework7在這裏不是真正的問題。我想你是以某種方式在元素#mySelect931上附加了另一個事件監聽器。您可以嘗試使用$('#mySelect931').off();刪除元素上的所有事件偵聽器,並找出是否是根本原因。

請檢查片段:

// code works even without the below line 
 
    $('#mySelect931').off(); // remove all event listeners for this element 
 
    $('#mySelect931').on('change', function (e) { 
 
     var value = document.getElementById("mySelect931").value; 
 
     alert('selected Value: ' + value); 
 
     if(value == 'M4'){ 
 
      var a = 'M4'; //value of d 
 
      var b = '14'; // value of b to 125 
 
      var c = '-'; //value of b to 200 
 
      var d = '-'; // value of b over 200 
 
      var e = '2.8'; // value of k 
 
      var f = '7.66'; // value of e 
 
      var g = '7'; // value of s 
 
     } 
 
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/framework7/1.5.4/js/framework7.min.js"></script> 
 

 
<select id="mySelect931" style='background-color: #e3e3e3; color: black;'> 
 
    <option value="0" selected="selected">Select Value</option> 
 
    <option value="M4">M4</option> 
 
    <option value="M5">M5</option> 
 
    <option value="M6">M6</option> 
 
</select>

另一個骯髒的黑客可能,就是你自己的觸發事件change。即$('#mySelect931').trigger('change'); 但是,它不是正確的處理方法。

+1

謝謝男人;我會檢查出來.. :) –

0

如果你想盡快值選擇設置的值,你將需要使用onclickonchange僅當新選定的值與實際選定的值不同時才起作用(您的代碼完全按照我嘗試的方式工作)。

+0

onclick不起作用; onchange是正確的方法,但它需要我第一次選擇兩次選項。該錯誤主要是當在Framework7中使用這個時 –

+0

也許http://stackoverflow.com/questions/37520765/select-onchange-doesnt-work。我不能有更多的幫助。 – RompePC

+0

謝謝,但是,不工作太.. :( –

0

與下面的代碼TRY

HTML 
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js" integrity="sha256-hVVnYaiADRTO2PzUGmuLJr8BLUSjGIZsDYGmIJLv2b8=" crossorigin="anonymous"></script> 
<select id="mySelect931" style='background-color: #e3e3e3; color: black;'> 
    <option value="0" selected="selected">Select Value</option> 
    <option value="M4">M4</option> 
    <option value="M5">M5</option> 
    <option value="M6">M6</option> 
</select> 

JQUERY 
jQuery(document).ready(function(){ 
    jQuery('#mySelect931').change(function(){ 
     alert(jQuery(this).val()); 
    }); 
}); 
相關問題