2010-10-29 12 views
0

嗨,大家好我有一個html表單,其中我有一個textfield有能力輸入兩位數的第一個數字被自動填充爲0,我不希望用戶改變如此可能使用JavaScript或jQuery或其他任何東西。總是想保持我的文本字段的第一位數爲0

+0

難道只是我還是做這種氣味的不良商業行爲?爲什麼它在開始時必須顯示0?我意識到你不能對抗系統,但是0的外觀是否會影響一些業務功能?還是隻有在進行完整字符串匹配時才需要? – jcolebrand 2010-10-29 15:23:19

回答

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"> 
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); 
}); 
+0

如果用戶選擇文本並通過鼠標將其刪除,該怎麼辦。 – 2010-10-29 11:38:42

+0

如果內容粘貼到文本框中而不是通過鍵盤寫入,則您的解決方案將無法工作。因爲在這種情況下'keyup'事件不會觸發。 – Alpesh 2010-10-29 11:39:12

+1

在這種情況下,change()事件可能是您需要的,我忘記了複製/粘貼的情況,對不起。 – 2010-10-29 12:34:11

0

你可能會以「0」爲一個文本框,只能接受前文本更好一個數字然後以編程方式預置'0'?

+0

雅感謝..但多數民衆贊成什麼不希望。並已經給了思想。 – 2010-10-29 12:34:02

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); 
    }); 
}); 

而對於複製/粘貼工作太=]

+0

我怎麼沒跟着...... – 2010-10-29 12:36:27

相關問題