2017-09-13 52 views
0

我有下面的代碼,顯示警告「未定義」,直到在下拉列表中選擇了一個選項。有沒有辦法阻止此消息出現?如何禁止jQuery「undefined」消息

<select id="currency" required> 
    <option value="" selected disabled>Select Currency</option> 
    <option value="1,$">USD</option> 
    <option value="1,£">GBP</option> 
</select> 

<p><span id='symbol1'></span>0.00</p> 

<script> 

    $(document).ready(currencyFunction); 
    document.getElementById("currency").addEventListener("change", currencyFunction); 

    function currencyFunction() { 

     select=document.getElementById('currency').value.split(','); 

     display = select[1]; 

     document.getElementById("symbol1").innerHTML = display; 
    } 

</script> 
+0

什麼是不確定的錯誤?第二,也許你需要添加'var'來選擇和顯示 –

+3

爲什麼你需要在文檔準備好時運行'currencyFunction'?它試圖解析你的默認值,它是'''',並且當你嘗試從它獲得第二個值時失敗。 –

+0

@EvanKnowles這超級簡單 - 謝謝! –

回答

1

您不應該在document.ready事件中調用currencyFunction

您正在獲得undefined錯誤,因爲您在文檔準備就緒並且該函數試圖訪問下拉列表的值時調用currencyFunction。但是當頁面準備就緒時,下拉菜單中將會選擇空值。所以它給了那個錯誤。

但是,如果你想無論如何剿錯誤,那麼這樣做:

function currencyFunction() { 
    if(document.getElementById('currency').value != '') 
    { 
     select=document.getElementById('currency').value.split(','); 

     display = select[1]; 

     document.getElementById("symbol1").innerHTML = display; 
    } 
    } 
0

簡單的解決方案比JavaScript語法:

$(document).on('change', '#currency', function() { 
 
    $("#symbol1").html($(this).val()) 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<select id="currency" required> 
 
    <option value="" selected disabled>Select Currency</option> 
 
    <option value="$">USD</option> 
 
    <option value="£">GBP</option> 
 
</select> 
 

 
<p><span id='symbol1'></span>0.00</p>

0

您調用的函數只要在調用函數時加載頁面而沒有選擇任何選項,您將得到未定義的值,請檢查下面的代碼,我已經做了一些改動:

function currencyFunction() { 
 
     select=document.getElementById('currency').value.split(','); 
 

 
     display = select[1]; 
 

 
     document.getElementById("symbol1").innerHTML = display; 
 
    }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<select id="currency" required onchange="currencyFunction()"> 
 
    <option value="" selected disabled>Select Currency</option> 
 
    <option value="1,$">USD</option> 
 
    <option value="1,£">GBP</option> 
 
</select> 
 

 
<p><span id='symbol1'></span>0.00</p>

呼叫是通過使用選擇標籤內onchange事件的功能,這將調用只有當選擇選項的改變

0

試功能這FIDDLE

HTML

<select id="currency" required> 
    <option value="" selected disabled>Select Currency</option> 
    <option value="1,$">USD</option> 
    <option value="1,£">GBP</option> 
</select> 

<p><span id='symbol1'></span>0.00</p> 

JS

$(document).ready(function() { 
    $('select').on('change', function() { 
    var valueSelected = this.value.split(','); 
    console.log(valueSelected[1]); 
    var temp = $("#symbol1").text().replace(/[^0-9.]/g, ""); 
    $("#symbol1").html(valueSelected[1]+" "+temp); 
    }); 
});