2017-04-12 42 views
0

HTML:「數據 - 」屬性爲JavaScript參數不使用Chrome

<select name="employee_ID" id="employee_ID" onchange="$('#IncomeTaxDeduction').val($('#employee_ID').find(':selected').data('incomtax'));"> 
      <option value="" disabled selected style="display:none;">Select</option>   
      <?php foreach ($employee_data as $emp_opt_value): ?> 
      <option value="<?php echo $emp_opt_value['ID']; ?>" data-incomtax= "<?php echo $emp_opt_value['IncomeTaxPercent']; ?>" onclick="deductions(this)" > <?php echo $emp_opt_value['ID']; ?></option> 
      <?php endforeach; ?> 
</select> 

JS:

var itdeduction; 

function deductions(obj){ 
    itdeduction = parseFloat(obj.getAttribute('data-incomtax')); 

    alert(itdeduction); 
} 

這種 '數據 - ' 屬性工作得很好,在Firefox,但它無法正常工作在谷歌瀏覽器。有人能幫助我嗎?

+0

從哪裏/如何扣除()'被調用?此外,我會建議使用不引人注意的事件處理程序 – Satpal

+2

嘗試'obj.dataset.incomtax'。 – marmeladze

+1

'onclick =「deductions(this)」' – Bullet

回答

0

以下是得到的數據屬性的方法是JS:

<script> 
 
function getData() 
 
{ 
 
    alert(document.getElementById('sample').getAttribute('data-name')); 
 
} 
 
</script> 
 
<li id="sample" data-name="test">Sample</li> 
 
<br/> 
 
<button onClick="getData();">Get Attribute Value</button>

您的代碼編輯:

<script> 
 
var itdeduction; 
 

 
function deductions(){ 
 
var element = document.getElementById('employee_ID'); 
 
    itdeduction = parseFloat(element.options[element.selectedIndex].getAttribute('data-incomtax')); 
 
    alert(itdeduction); 
 
} 
 
</script> 
 
<select name="employee_ID" id="employee_ID" onchange="deductions();"> 
 
<option value="12" data-incomtax= "20">Some Name</option> 
 
<option value="13" data-incomtax= "30">Another Name</option> 
 
</select>

element.options [element.selectedIndex]是做什麼用的?

它爲選擇框選擇選定的選項。 例如: 如果選擇somename,那麼element.options[element.selectedIndex]會給我們<option value="12" data-incomtax= "20">Some Name</option>

相關問題