我的功能如下
Mask (sender) {
var error= false;
var regex = '^[0-9]+,[0-9][0-9]$';
if(!($(sender).val().match(regex))) {
error = true;
}
}
HTML
<input name="mf1234" value="" id="mf1234" onblur="Mask(this)"/>
<span class="comment" id="mf1234" class="sssnnn"></span>
我使用(this)调用了Blur,但是如果我想通过带有span id的Mask(this.id)调用它,我该如何更改我的方法代码?
答案 0 :(得分:4)
function Mask (senderID) {
var error= false;
var regex = '^[0-9]+,[0-9][0-9]$';
if(!($("#" + senderID).val().match(regex))) {
error = true;
}
}
JQuery采用CSS选择器值,因此任何ID都需要表示为#idValue
<div id='MyId'>
将在jQuery中调用为$("#MyId")
因此,如果您计划将Mask(this.id)
传递给function Mask (senderID)
,则需要致电$("#" + senderID)
你可以像这样从HTML中调用它,但是不建议使用内联Javascript。 查看Code Seperation。
<input name="mf1234" value="" id="mf1234" onblur="Mask(this.id)"/>
<span class="comment" id="mf1234_comment" class="sssnnn"></span>
以下是更好的解决方案......
$(document).ready(function() {
$("#mf1234").bind("blur", function() {
var error = false;
var regex = '^[0-9]+,[0-9][0-9]$';
if (!($(this).val().match(regex))) {
error = true;
}
console.log(error);
});
});
在javascript中附加您的活动..这可以避免内联JavaScript并促进代码分离。这将有助于您的可维护性和可读性
哦,然后你的HTML看起来像这样<input name="mf1234" value="" id="mf1234" />
<span class="comment" id="mf1234_comment" class="sssnnn"></span>
答案 1 :(得分:1)
尝试以下操作(并检查this jsfiddle):
$('input[name="mf1234"]').blur(function(){
var error= false;
var regex = RegExp('^[0-9]+,[0-9][0-9]$');
if(!($(this).val().match(regex))) {
error = true;
alert('error');
} else {
alert('no error');
}
});
它不使用内联JavaScript,但如果您坚持使用预定义函数(Mask()
),则可以从.blur()
内部调用它。