我有一个html输入,它的值等于当前日期。我想允许用户在输入中添加文本但不删除日期。任何人都可以帮助我吗?
这是我正在使用的代码
<input type="text" name="entryCode" id="entryCode" />
/* get current date */
var $now = new Date();
var $month = (($now.getMonth().length+1) === 1)? ($now.getMonth()+1) : '0' + ($now.getMonth()+1);
var $day = $now.getDate()+"";if($day.length==1) $day="0" + $day;
var $year = $now.getFullYear();
$("#entryCode").val($year + $month + $day + "-");
输入的值是20140109-,我想在“ - ”之后允许用户输入,保持前9个字符不变。
由于
答案 0 :(得分:1)
将文字放在输入之外:
20140109-<input type="text" name="entryCode" id="entryCode" />
然后将用户输入添加到您想要的前缀
或强>
您也可以使用它来模拟带有固定前缀的输入 See example here
答案 1 :(得分:1)
您可以检查值的长度并防止默认行为:
$("#entryCode").on('keydown', function(e){
var kc = e.which || e.keyCode;
if($(this).val().length <= 9 && kc == 8){
e.preventDefault();
}
});
<label>
<input type="text" name="entryCode" id="entryCode" value='' />
</label>
您可以使用以下代码:
var $now = new Date();
var $month = (($now.getMonth().length + 1) === 1) ? ($now.getMonth() + 1) : '0' + ($now.getMonth() + 1);
var $day = $now.getDate() + "";
if ($day.length == 1) $day = "0" + $day;
var $year = $now.getFullYear();
$("#entryCode").closest('label').prepend($year + $month + $day + "-").end().focus();