Php 动态添加的文本字段上的Jquery.keyup
如何为动态添加的文本字段添加keyup事件。我正在用drupal开发web应用程序。当我尝试使用“live”时,菜单不起作用Php 动态添加的文本字段上的Jquery.keyup,php,javascript,jquery,drupal,Php,Javascript,Jquery,Drupal,如何为动态添加的文本字段添加keyup事件。我正在用drupal开发web应用程序。当我尝试使用“live”时,菜单不起作用 $('input[id$="-code"], input[id$="-case"], input[id$="-vehicle-no"]') .live('keyup', function(e){ $(this).val($(this).val().toUpperCase()); }); 为了避免代码中的混乱,在动态添加的输入字段中添加一个类,这样对您来说就很容易了
$('input[id$="-code"], input[id$="-case"], input[id$="-vehicle-no"]')
.live('keyup', function(e){
$(this).val($(this).val().toUpperCase());
});
为了避免代码中的混乱,在动态添加的输入字段中添加一个类,这样对您来说就很容易了。无论如何,使用live将起作用。看看这把小提琴 “@Swardfish..在我的例子中,在“AddRow”按钮点击后,它会创建一个包含四个文本字段的行。其中有“vehicle no”文本字段。我只想为特定的文本字段添加此事件。我如何根据这一点自定义您的代码..” 听起来您正在创建新行,其中包含要将keyup事件附加到的字段。如果是这样,那么同一页上可能有多个元素具有相同的ID
相反,正如Swardfish所建议的那样,将一个类添加到希望附加keyup事件的字段中(在jQuery选择器中使用该类),并删除id属性,只使用name属性(但不使用jQuery选择器的name属性-您不需要它).你也可以用另一种方式来做。尽管这会违反“不要重复你自己”。请参阅jquery常见问题解答中的本节。不要使用live,只需将.keyup()与选择器一起使用即可。在动态创建元素的代码下面再次声明这些绑定。在$(document).ready()方法中的代码中的某个地方使用以下命令 在动态创建这些元素的代码下面,将
$('input[id$="-code"], input[id$="-case"], input[id$="-vehicle-no"]')
.unbind('keyup').keyup(function(e){
$(this).val($(this).val().toUpperCase());
});
如果其他事情都好的话,它应该会起作用。试试看。对于JQuery上的新元素,您可以使用live函数。但如果您使用Drupal,则必须使用行为。
我真的不太明白你的问题,但我读到你尝试使用live,所以我认为这可能会有帮助你说的“不工作”是什么意思?您应该在提问时添加所有相关信息。@Swardfish..在我的例子中,单击“AddRow”按钮后,它会创建一个包含四个文本字段的行。其中有“vehicle no”文本字段。仅针对特定的文本字段,我想添加此事件。如何根据该事件自定义您的代码..@user731060:只包含
class=“b”
在您希望将keyup事件附加到的字段中。@user731060只需为您希望引发事件的字段指定一个类即可。车辆id\u没有文本字段在每个rowGood点上都是不同的。但是ID属性实际上并不是必需的。您可以改为使用name属性,以避免风险。
$('input[id$="-code"], input[id$="-case"], input[id$="-vehicle-no"]')
.unbind('keyup').keyup(function(e){
$(this).val($(this).val().toUpperCase());
});