我使用jquery作为输入框来验证其内容 我在我之前工作过的人创建了一个名为comoon.js的文件,该文件支持所有其他文件。但是当我在(文件).ready(函数()这样写这个代码时
$(document).ready(function()
{
$('#validate').keyup(function(){
var i = $('input');
(/http:\/\//).test(i.val()) && i.val(i.val().replace('http://',''));
});
});
我有这样的输入框
<input type="text" id="validate" class="right" name="linkurl" maxlength="150" size="130"/>
但它不能在这个按钮上工作我应该怎么做,问题是什么,我知道所有页面都加载了js文件......
答案 0 :(得分:2)
假设您的页面上有多个输入,问题就在于这一行:
var i = $('input');
...将i
设置为包含页面上所有输入的jQuery对象。请尝试改为:
var i = $(this);
...将i
设置为仅包含事件发生元素的jQuery对象。
(只有一个输入时,您的代码才有效。)
如果有问题的输入是在页面加载后动态创建的,那么你将遇到第二个问题:你不能将事件处理程序绑定到一个尚不存在的元素,但是你可以使用一个委托的事件处理程序: / p>
$(document).ready(function()
{
$(document).on("keyup", '#validate', function(){
var i = $(this);
(/http:\/\//).test(i.val()) && i.val(i.val().replace('http://',''));
});
});
理想情况下,您将document
中的$(document).on("keyup", '#validate', ...
替换为页面加载中存在的最接近的“#validate”祖先。如果您使用的jQuery版本低于1.7,请使用.delegate()
而不是.on()
(有关详细信息,请参阅jQuery API doco)。