2017-09-21 9 views
0

私はHtml.EditForを使用しています。最後の文字を切り取るスクリプト

@Html.EditorFor(model => model.Salary, new { htmlAttributes = new { id = "SalaryEdit", @class = "form-control", onkeypress = "myFunction()" } }) 

スクリプト

function myFunction() { 
       var source = $('#SalaryEdit'); 
       console.log($("input[id^='SalaryEdit']").val()); 
      } 

私は例えばEditorForを入力:1,23。それは私だけ1,2を示しています。それは常に最後の文字をカットします。理由は何ですか?

+2

'onkeyup'代わりに' keypress'イベントは文字が入力__being__表してonkeypress' 'のを使用してください。さらに、jQueryを使用しているときは、邪魔にならないイベントハンドラ – Satpal

答えて

0

$("#SalaryEdit").on("keyup",function(){ 
 
    var str=$(this).val().split('.'); 
 
    var val=''; 
 
    if(str.length>1) 
 
    val =(str[1].length>1) ?str[0]+'.'+ str[1].substring(0, str.length-1):str[0]+'.'+str[1]; 
 
    else 
 
    val =str[0]; 
 
    $(this).val(val); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input id="SalaryEdit" type="text"/>

0

onkeypressではなくonkeypressイベントを使用します。 onkeyupは、ユーザーがテキストを入力し終わった後の入力値を表示します。 keypressはユーザーが何かを入力したときの値を表示します。

関連する問題