2017-08-16 23 views
-1

Javascript,如何填充數字時返回false直到10位小數?Javascript,如何填充數字到10位小數時返回false?

這是我填寫手機號碼的代碼。我試圖設置必須return false當用戶填入輸入號碼== 10位十進制但不工作,我該怎麼辦?

<p style="margin-bottom: 20px;"> 
 
<input name="mobile_number" onKeyUp="check_mobile_number_length(this.value)" type="number" class="feedback-input" id="mobile_number" onchange="updateInput_mobile_number(this.value)"> 
 
<span id="mySpan_mobile_number" style=" float: left; margin-left: 12px; ^margin-left: 0px; font-size: 12px; color: red;"></span> 
 
</p> 
 

 
<script> 
 
function check_mobile_number_length(mobile_number_value){ 
 
\t var mobile_number_value = mobile_number_value.replace(/[^0-9,.]+/g, ""); 
 
\t document.getElementById("mobile_number").value = mobile_number_value; 
 
\t var mobile_number_value = document.getElementById("mobile_number").value; 
 
\t 
 
\t if(mobile_number_value.length==10) 
 
\t { 
 
\t \t document.getElementById("mobile_number").style.border = "1px solid rgba(72,72,72,0.4)"; 
 
\t \t document.getElementById("mySpan_mobile_number").innerHTML = ""; 
 
\t \t return false; 
 
\t } 
 
\t else 
 
\t { 
 
\t \t document.getElementById("mobile_number").style.border = "1px solid red"; 
 
\t \t document.getElementById("mySpan_mobile_number").innerHTML = "please enter mobile number for 10 decimal"; 
 
\t } 
 
} 
 
</script>

+0

你覺得返回'FALSE'應該有什麼樣的影響?到那時你的函數已經修改了字段中的值。 – nnnnnn

+0

當填充數字== 10十進制。用戶不能填寫數字到輸入 –

+0

所以你的目標是返回'false',這是你的問題如何表達,或者你的目標是防止用戶輸入超過10位數字? – nnnnnn

回答

0

通過用戶的密鑰已被釋放時,字符已經被鍵入。因此,您不能使用onkeyup。在這裏,我使用了onkeypress,當按鍵被按下時,它會被觸發。

另外,雖然return false直接內聯時有效,但最好直接拒絕該事件,將事件傳遞給該函數,然後調用.preventDefault()就可以了。這樣可以防止事件發生後的默認操作(例如onkeypress防止按鍵被按下,onclick防止點擊等)。

在這裏,我已經創建了一個基本的例子來說明如何做到這一點。希望你能適應它,以滿足您的需求:

function check_mobile_value(ele, ev) { 
 
    if (ele.value.length>=10) { 
 
    ev.preventDefault(); 
 
    } 
 
}
<input type="number" onkeypress="check_mobile_value(this, event)">