【发布时间】:2013-05-12 12:22:17
【问题描述】:
我正在尝试根据需要将额外的输入字段添加到我的 HTML 表单中。这是我的代码:
我的代码
JS
$(document).ready(function(e) {
var i = $('.form-inputs input').size() + 1;
$('.section-topic-field').last().bind('keyup', function(e) {
if($(this).val() != "") {
var html_new_field = '<input name="txtTopicName' + i + '" class="section-topic-field" type="text" onfocus="this.value=\'\'" placeholder="topic name #' + i + '" /><br />';
$('.form-inputs').append($(html_new_field).fadeIn('slow'));
i++;
}
});
});
HTML
<input name="txtSection" type="text" onfocus="this.value=''" placeholder="sections"/><br/>
<div class="form-inputs">
<input name="txtTopicName1" class="section-topic-field" type="text" onfocus="this.value=''" placeholder="topic name #1"/><br />
</div>
<!--<button class="btn btn-mini btn-primary" type="submit">Create</button>-->
</form>
问题
但是,函数 ALWAYS 在第一个输入字段上触发,因此在第一个输入字段中键入,例如,4 个字母,将生成 4 个输入字段。然后,当您在实际的最后一个输入字段(在本例中为第 4 个)输入内容时,什么也没有发生。所以出于某种原因$('.section-topic-field').last() 总是选择第一个输入字段。
我也尝试了:last 选择器和:last-child,但结果是一样的
有什么帮助吗?
谢谢!
【问题讨论】:
-
为什么要在keyup上绑定。你可以在blur上触发。
-
你说的不只是在最后一个输入字段上触发是什么意思?
-
为什么你不能通过 id 获取最后一个输入字段..??
-
@pXL 使用 而不是仅在最后一个输入字段上触发,我的意思是由于
.last()功能,偶数keyup应该只在最后一个触发输入字段添加?不应该吗? (我对 JQuery 很陌生)@AmitSharma 我认为这也应该有效?并认为这是一个更清洁的解决方案(如果它有效;c),您将如何通过它的 ID 获得它?
标签: jquery html dynamic input add