我这里有这个小脚本...它在每4个字符后添加一个“ - ”但我需要它不添加 - 在12个字符之后。
$(function(){
$("#promo").keyup(function(){
var $this = $(this);
if ((($this.val().length+1) % 5)==0){
$this.val($this.val() + "-");
}
});
});
但是在12个字符的末尾添加了一个“ - ”,尽管我的字符数限制为14。
我如何防止这种情况发生?
答案 0 :(得分:3)
maxlength
属性不会阻止您使用Javascript修改<input>
值。
您仍然可以添加支票:
$(function(){
$("#promo").keyup(function(){
var $this = $(this);
if ((($this.val().length+1) % 5)==0 && $this.val().length() < $this.attr("maxlength")){
$this.val($this.val() + "-");
}
});
});
答案 1 :(得分:1)
您可以在if:
中添加此内容if ($this.val().length > 12) {
return false;
}
代码建议(少用jQuery):
$(function () {
$("#promo").keyup(function () {
if (((this.value.length + 1) % 5) == 0) {
if (this.value.length > 12) {
return false;
}
this.value += "-";
}
});
});
答案 2 :(得分:0)
你可以简单地使用&amp;&amp; AND运算符,并使其成为条件,如果val.length大于11
,则不会发生任何事情$(function(){
$("#promo").keyup(function(){
var $this = $(this);
if ((($this.val().length+1) % 5)==0 && $this.val().length <=11){
$this.val($this.val() + "-");
}
});
});
答案 3 :(得分:0)
我没看小提琴,但是;
$(function(){
$("#promo").keyup(function(){
var $this = $(this);
if ((($this.val().length+1) % 5)==0 && $this.val().length <= 12){
$this.val($this.val() + "-");
}
});
});
答案 4 :(得分:0)
$(function(){
$("#promo").keyup(function(){
var $this = $(this);
if($this.val().length<14){
if ((($this.val().length+1) % 5)==0){
$this.val($this.val() + "-");
}
}
});
});
你去。
小提琴更新here