我試圖從數據列表中的選定選項中找到data-id的值。我有一個函數返回正確的值,但也給了我一個彈出'NaN'。作爲對我的問題的標準迴應,我使用'intParse'或'isNaN'函數,但沒有任何東西似乎停止返回'NaN'所以我得到了兩個警報。首先使用正確的值,然後調用此函數時使用'NaN'。當從數據列表選項中檢索data-id時,JavaScript函數返回NaN
$("#EducationEstablishment").on('input', function() {
var id = GetDataListOptionValue(EducationEstablishment, establishments);
alert(id)
});
function GetDataListOptionValue(datalistInputId, dataListId) {
var x = $(datalistInputId).val();
var z = $(dataListId);
var val = $(z).find('option[value="' + x + '"]');
endval = val.attr('data-id');
var num = isNaN(parseInt(endval)) ? 0 : parseInt(endval)
return (num);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="EducationEstablishment" list="establishments" type="text">
<datalist id="establishments">
<option data-id="100018962" value="Instituto Tecnologico De Buenos Aires"></option>
<option data-id="100084386" value="National University of Cordoba, Argentina"></option>
</datalist>
首先,你有一些不平衡parentises。我認爲這些只是_typos_。 –
我只是試過你的代碼,它的工作。 –
是的,它正在工作。但是,在給出正確的值之後,它會給出一個額外的對話框,其中包含'NaN'消息 – mirosz