【发布时间】:2014-12-16 23:42:28
【问题描述】:
大家好,我是 jQuery 跳跃的新手,我会在这里获得帮助。
我有一行 4 个文本字段。 一旦用户开始输入第 4 个文本字段(行上的最后一个文本字段) 我监听 jQuery KEYUP 并生成第二行的 4 个文本字段。 然后 一旦用户开始在第二行文本字段上输入并到达最后一个文本字段(这是我被卡住的地方:))jQuery KEYUP 必须生成第三行,而第三行不会。
为了尝试对我的代码进行故障排除,我在 keyup 上设置了警报,以查看第 4 个文本字段生成的 keyup 事件是否让我成为正确的 PARENT,我将使用 AFTER() 添加我的另一行 从警报中我可以看到我得到了正确的父母。
有什么建议吗?
这是我正在使用的代码。
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title></title>
<script src="js/jquery-2.1.1.js"></script>
<SCRIPT LANGUAGE="JavaScript">
$(document).ready(function(){
var NewInvoiceLine = $('<div id="InvoiceLine"><div class="ItemFields" id="ItemQuantity"> <input id="Quantity" name="Quantity" type="text"></div><div class="ItemFields" id="ItemDescription"> <input id="Description" name="Description" type="text"></div><div class="ItemFields" id="ItemPrice"> <input id="Price" name="Price" type="text"></div><div id="ItemTotalPrice"><input id="TotalPrice" name="TotalPrice" type="text"></div></div>')
$('#Invoice').on('keyup','#TotalPrice',function(event){
event.preventDefault();
alert($(this).first().parent().parent().attr('id'));
$(this).first().parent().parent().after(NewInvoiceLine);
});
});
</SCRIPT>
<style type="text/css">
.ItemFields{float:left;}
</style>
</head>
<body>
<form name="form1" method="get" action="">
<div id="Invoice">
<div id="InvoiceLine1">
<div class="ItemFields" id="ItemQuantity"> <input id="Quantity" name="Quantity" type="text"></div>
<div class="ItemFields" id="ItemDescription"> <input id="Description" name="Description" type="text"></div>
<div class="ItemFields" id="ItemPrice"> <input id="Price" name="Price" type="text"></div>
<div id="ItemTotalPrice"><input id="TotalPrice" name="TotalPrice" type="text"></div>
</div>
<div id="InvoiceButtons">
<div id="Submit"><input name="Submit" type="submit" value="Submit"></div>
<div id="Draft"><input name="Draft" type="submit" id="Draft" value="Draft"></div>
</div>
</div>
</form>
</body>
</html>
【问题讨论】:
-
您好,欢迎来到社区。您能提供更多详细信息并让您的问题更清楚吗?
-
感谢 OnlyMAJ。我已经改变了我的文字希望这很清楚。
-
#TotalPrice 选择器只会为它看到的第一个带有 id TotalPrice 的元素注册 keyup 事件,而不是你正在生成的新元素。为 TotalPrice 输入分配一个类并在 jquery 选择器中为 keyup 事件引用它可能是一种解决方案。
-
感谢阿兰的评论。我试过了 :) 我试过到处搜索我确定我不是第一个遇到这个问题的人$('#Invoice').on('keyup',".TotalPrice" 但仍然和以前一样。