2017-04-12 20 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>

相关问题