Sha*_*pta 6 jquery jquery-selectors
我试图为我的所有控件使用相同的验证功能.但我在jQuery中不太了解,也无法将事件处理程序传递给触发器.我想将文本框ID传递给我的自定义函数.我怎样才能做到这一点
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("#txtFirstName").bind('focusout', function()
{
$(this).trigger("customblurfocus",[$(this).val(), $(this).val() + " Required !", "Ok !"]);
}
);
$(this).bind('customblurfocus',function(defaultInputValue,ErrorMessage,ValidMessage)
{alert($(this).val());
if($(this).val()=="" || $(this).val()==defaultInputValue)
{
$(this).val(defaultInputValue);
$(this).siblings("span[id*='error']").toggleClass("error_set").text(ErrorMessage).fadeOut(3000);
}
else
{
$(this).siblings("span[id*='error']").toggleClass("error_ok").text(ValidMessage).show(1000);
}
}
);
});
</script>
Run Code Online (Sandbox Code Playgroud)
Fel*_*ing 10
更新:我想我想出了你想要实现的目标,这应该有效(自定义事件不需要):
function validate(element, defaultInputValue, ErrorMessage, ValidMessage) {
alert($(this).val());
if($(this).val()=="" || $(this).val()==defaultInputValue)
{
$(this).val(defaultInputValue);
$(this).siblings("span[id*='error']").toggleClass("error_set").text(ErrorMessage).fadeOut(3000);
}
else
{
$(this).siblings("span[id*='error']").toggleClass("error_ok").text(ValidMessage).show(1000);
}
}
$(document).ready(function(){
$("#txtFirstName").bind('focusout', function() {
validate(this, "defaultValue here", "Error message here", "Valid message here");
});
});
Run Code Online (Sandbox Code Playgroud)
如果您有疑问,请问:)
绑定事件处理程序的第一个参数是事件对象本身.请参阅.trigger()文档中的示例:
$('#foo').bind('custom', function(event, param1, param2) {
alert(param1 + "\n" + param2);
});
$('#foo').trigger('custom', ['Custom', 'Event']);
Run Code Online (Sandbox Code Playgroud)
和:
事件对象始终作为第一个参数传递给事件处理程序,但如果在
.trigger()调用期间指定了其他参数,则这些参数也将传递给处理程序.
所以你的看起来应该是这样的:
function(event, defaultInputValue, ErrorMessage, ValidMessage)
Run Code Online (Sandbox Code Playgroud)
但如果你描述了你实际得到的错误会更好.
第二个问题:如果我看到第二个绑定在某种程度上没有上下文:
$(document).ready(function(){
$("#txtFirstName").bind('focusout', function(){});
$(this).bind('customblurfocus',function(defaultInputValue,ErrorMessage,ValidMessage)
{ //...
});
});
Run Code Online (Sandbox Code Playgroud)
要将哪个元素绑定到自定义事件?应该$(this)是什么?在这种状态下,即使将event第一个参数添加到函数中,这也不起作用.
请告诉我们有关您的HTML结构和/或您想要实现的内容的更多信息.
| 归档时间: |
|
| 查看次数: |
24231 次 |
| 最近记录: |