1

従業員の月給を含む簡単なhtmlファイルを作成しようとしていますが、各給与の納税額を計算する必要があります。「追加」ボタンを使用して、同様のdivを含む新しいクラスのdivを作成する従業員テキストフィールドを追加します。給与テキストフィールドのonchangeイベントで、適切な従業員の税額を設定できません。

残念ながら、スクリーンショットをアップロードできないため、質問をできるだけ明確にするためにすべてのコードを配置しました。

これは、従業員領域を追加するためのjqueryコードです。

$(document).ready(function(){

var counter = 2;

$("#add_emp").click(function () {


var newTextBoxDiv = $(document.createElement('div'))
     .attr("class", 'em_area' + counter);

newTextBoxDiv.after().html('<br><label>Employee '+counter+' </label> <input id=em_name name=em_name type=text required  /> <label>Position</label> <input id=em_post name=em_post type=text required  /> <label>Monthly Salary</label> <input id=em_sal name=em_sal size=10 type=text required  /> &nbsp &nbsp &nbsp <label>Salary Tax</label> <input id=em_taxds type=text size=10 required />  ' );

newTextBoxDiv.appendTo("#all_emps");


counter++;
 });

 $("#del_emp").click(function () {


counter--;

    $(".em_area" + counter).remove();

 });
 });

これはhtmlコードです:

<div id="all_emps">
    <div class="em_area">
        <label>Employee 1</label>
        <input type=text required  />
        <label>Position</label>
        <input type=text required  />
        <label>Monthly Salary</label>
        <input id=em_sal type=text required size=10 onchange="calculateTax(this.value);" />
        &nbsp &nbsp &nbsp 
        <label>Salary Tax</label>
        <input id=em_tax name=em_tax type=text required size=10 readonly />
        &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp
        <a href="#" id="add_emp"><img src="add.jpg" width="30" height="30"></img></a>
        &nbsp &nbsp &nbsp &nbsp &nbsp
        <a href="#" id="del_emp"><img src="minus.jpg" width="30" height="30"></a>
    </div>  
</div>

これは私が問題を抱えている税計算コードです:(??????)

function calculateTax(sal)
{
    int salary = parseInt(sal);
    if(salary < 5000)
    {
        document.getElementById("em_tax").value = '0' ;
    }
    else if(salary>5000 || salary=5000)
    {
        var due_tax ;
        due_tax= salary/100;
        due_tax=salary - due_tax;

        document.getElementById("????????").value = due_tax;
    }
}
4

1 に答える 1

3

私が最初に観察したは、HTMLに重複したIDがあることです。IDがページ上で一意であることを確認してください。代わりにクラス名を付けてみてください。

<input class=em_sal type=text required size=10 onchange="calculateTax(this.value);" />
 &nbsp &nbsp &nbsp 
<label>Salary Tax</label>
<input class=em_tax name=em_tax type=text required size=10 readonly />

JQueryで変更イベントを作成する

$('#all_emps').on('change' , '.em_sal', function() { // Fire the change event

    var salary = parseInt(this.value);
    var dueTax = 0;
    if(salary < 5000){  
        // Do Nothing
    }
    else if(salary >= 5000)
    {
        due_tax= salary/100;
        due_tax= salary - due_tax;
    }
    // This will get the corresponding tax input for the employee..
    $(this).closest('div').find('.em_tax').val(due_tax) ;
});

FIDDLEを確認してください

于 2012-10-22T06:31:46.927 に答える