【问题标题】:Input can fill only only 10 digits using Javascript not working on firefox why?输入只能填充 10 位使用 Javascript 不能在 firefox 上运行,为什么?
【发布时间】:2017-10-09 15:24:28
【问题描述】:

使用 Javascript 输入只能填充 10 位数字在 firefox 上不起作用,为什么?

填充 EG:0258748542 我在 chrome 上进行了测试,效果很好。 但是不能在firefox上工作,为什么?

我该怎么做?

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>

<input name="ten_number" onkeyup="check_ten_number_length_up(this.value)" onkeydown="return check_ten_number_length_down(this,10);" type="number" class="feedback-input" id="ten_number" placeholder="please enter 10 digits" onchange="updateInput_ten_number(this.value)">


<span id="mySpan_ten_number"></span>

<script>
function check_ten_number_length_up(ten_number_value){
	var ten_number_value = ten_number_value.replace(/[^0-9]+/g, "");
	document.getElementById("ten_number").value = "";
	document.getElementById("ten_number").value = ten_number_value;
	var ten_number_value = document.getElementById("ten_number").value;
	
	if(ten_number_value.length==10) 
	{
		document.getElementById("ten_number").style.border = "1px solid rgba(72,72,72,0.4)";
		document.getElementById("mySpan_ten_number").innerHTML = "";
	}
	else
	{
		document.getElementById("ten_number").style.border = "1px solid red";
		document.getElementById("mySpan_ten_number").innerHTML = "please enter 10 digits";
	}
}
</script>


<script>
function updateInput_ten_number(ten_number_value){
    var ten_number_value_length = ten_number_value.length;
    if(ten_number_value_length != "10")
    {
        document.getElementById("ten_number").style.border = "1px solid red";
        document.getElementById("mySpan_ten_number").innerHTML = "please enter 10 digits";
	}
	else
	{
        document.getElementById("ten_number").style.border = "1px solid rgba(72,72,72,0.4)";
        document.getElementById("mySpan_ten_number").innerHTML = "";
	}
}
</script>

<script>
function check_ten_number_length_down(ten_number_value,max_length){
  if([8, 37,38,39,40, 46].indexOf(event.which) == -1)
  {
      return ten_number_value.value.length < max_length;
  }
}
</script>

【问题讨论】:

    标签: javascript jquery html firefox


    【解决方案1】:

    您没有将您的事件传递给check_ten_number_length_down() 函数。 您也不需要使用空字符串更新值,只需再次用旧值覆盖它。

    function check_ten_number_length_up(ten_number_value){
    
    	var ten_number_value = ten_number_value.replace(/[^0-9]+/g, "");
    	
    	if(ten_number_value.length==10) 
    	{
    		document.getElementById("ten_number").style.border = "1px solid rgba(72,72,72,0.4)";
    		document.getElementById("mySpan_ten_number").innerHTML = "";
    	}
    	else
    	{
    		document.getElementById("ten_number").style.border = "1px solid red";
    		document.getElementById("mySpan_ten_number").innerHTML = "please enter 10 digits";
    	}
    }
    
    function updateInput_ten_number(ten_number_value){
        var ten_number_value_length = ten_number_value.length;
        if(ten_number_value_length != "10")
        {
            document.getElementById("ten_number").style.border = "1px solid red";
            document.getElementById("mySpan_ten_number").innerHTML = "please enter 10 digits";
    	}
    	else
    	{
            document.getElementById("ten_number").style.border = "1px solid rgba(72,72,72,0.4)";
            document.getElementById("mySpan_ten_number").innerHTML = "";
    	}
    }
    
    function check_ten_number_length_down(event, ten_number_value, max_length){
      if([8, 37,38,39,40, 46].indexOf(event.which) == -1)
      {
          return ten_number_value.value.length < max_length;
      }
    }
    input[type=number] {-moz-appearance: textfield;}
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
    
    <input name="ten_number" onkeyup="check_ten_number_length_up(this.value)" onkeydown="return check_ten_number_length_down(event, this, 10);" type="number" class="feedback-input" id="ten_number" placeholder="please enter 10 digits" onchange="updateInput_ten_number(this.value)">
    
    
    <span id="mySpan_ten_number"></span>

    【讨论】:

    • 但是第一个数字还是不能填0。
    • 现在修复了。
    • 带输入[type=number] {-moz-appearance: textfield;}
    猜你喜欢
    • 2019-12-06
    • 1970-01-01
    • 2014-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-02
    相关资源
    最近更新 更多