总是希望将我的文本字段的第一个数字保持为0

时间:2010-10-29 11:28:12

标签: javascript jquery

大家好我有一个html表单,我有一个文本字段,有能力输入两位数,第一个数字自动填充为0,我不希望用户改变可能使用javascript或jQuery或其他任何东西。

4 个答案:

答案 0 :(得分:1)

这是另一种方式。 onKeyUp可能不是你想要它的工作方式,但至少你有一些想法

<script>
window.onload=function() {
  document.getElementById('part2').focus();
}
</script>
<form onSubmit="this.realvalue.value='0'+document.getElementById('part2').value">
<input type="text" name="realvalue" value="">This can be hidden<br />
<input type="text" style="border-right:0; width:12px" value="0" readonly="readonly" size="1"><input type="text" id="part2" style="border-left:0; width:13px" size="1" maxsize="1" 
onKeyUp="this.value=(this.value.length>1)?this.value.substring(-1):this.value">
<input type="submit">

答案 1 :(得分:0)

您可以使用当用户在字段中输入文本时触发的事件“keyup”:

$('#my-input').keyup(function() {
    var theInputValue = $(this).val();
    // Do whatever you want with the value (like check its length, 
    // append 0 at the beginning, tell the user not to change first
    // character
    //

    // Set the real value
    $(this).val(newValue);
});

答案 2 :(得分:0)

你可能最好在文本框前面加一个'0'作为文本,只能接受一个数字然后以编程方式添加'0'?

答案 3 :(得分:0)

我编写并测试了这段代码,并且完全符合您的预期:

$(function (){
  $('#input_id').bind('input',function (){
    var val = $(this).val();
    var r = val.match(/^[0][0-9]$/g);
    if (r !== null){
      val = r[0];
      if (val.length === 1){
        val = '0' + val;
      }
    }else{
      val = '0';
    }
    $(this).val(val);
  });
});

也适用于复制/粘贴=]