如果没有焦点的文本框中有数据,则创建新行,并且在第二行下拉列表中不提供数据
HTML Create a new row if data is present in the textbox without focus also and on second row drop down does not provide data only
我有一个问题,这里的问题是,一个新的行没有创建,直到一些数据不是手动键入我试图产生值到一些文本框上的下拉更改,但仍然在下拉更改的值填充在文本框上,仍然行没有创建和第二行,第二行下拉不提供数据更改也
$('#results').append('<table width="100%" border="1" cellspacing="0" cellpadding="5" id="productanddates" class="border"> <tr><td> <input type="text" name="to1" id="to1" value="" /> </td> <td> <select class="dd" name="Phonenumberdd1" id="Phonenumberdd1"> <option value="test">test </option><option value="test2">test 2</option></select></td> <td> <input type="text" name="renewal_by1" id="renewal_by1" /> </td> <td> <input type="text" name="Renivaul_to1" id="Renivaul_to1" value="" /> </td></TR></TABLE>');
$('#results').on('focus', ':input', function() {
$(this).closest('tr').filter(function() {
return !$(this).data('saved');
})
.find(':input').each(function() {
$(this).data('value', this.value);
$(this).closest('tr').data('saved', true);
});
})
.on('input change', ':input', function() {
$(this).data('filled', this.value != $(this).data('value'))
var tr = $(this).closest('tr');
all = tr.find(':input'),
fld = all.filter(function() {
return $(this).data('filled');
});
if (all.length == fld.length) {
if (!tr.data('done')) {
$('#buttonclck')[0].click();
tr.data('done', true);
}
} else {
if (tr.data('done')) {
tr.next('tr').remove();
tr.data('done', false);
}
}
});
$('#buttonclck').on('click', function() {
var lastRow = $('#productanddates').closest('#productanddates').find("tr:last-child");
var cloned = lastRow.clone();
cloned.find('input, select').each(function() {
var id = $(this).attr('id');
var regIdMatch = /^(.+)('d+)$/;
var aIdParts = id.match(regIdMatch);
var newId = aIdParts[1] + (parseInt(aIdParts[2], 10) + 1);
$(this).attr('id', newId);
$(this).attr('name', newId);
});
cloned.find("input[type='text']").val('');
cloned.insertAfter(lastRow);
});
$('#productanddates tr').on('change', '.dd', function(e) {
var data = "dummy data";
$(this).closest('td').prev().find('input').val(data);
$(this).closest('td').next().find('input').val(data);
});
.hide {
display: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="results"></div>
<input id="buttonclck" type="button" class="hide" value="button" />
要解决您想要触发input
或change
事件,一旦您通过编程更改任何输入元素的值:
$(this).closest('td').prev().find('input').val(data).trigger('input');
$(this).closest('td').next().find('input').val(data).trigger('input');
下面是一些对你将来有帮助的解释:
$('#productanddates tr').on('change','.dd', function(e) {
// ^The selector you put here must refer to an element that is in the DOM
// when the page loads. The `tr` element does not exist at page load
// and therefore is not a valid element to use
$( selector ).live( events, data, handler ); // jQuery 1.3+
$( document ).delegate( selector, events, data, handler ); // jQuery 1.4.3+
$( document ).on( events, selector, data, handler ); // jQuery 1.7+
裁判:http://api.jquery.com/live/
应该这样做:
$('#results').on('change','.dd', function(e) {
相关文章:
- 数据和HTML下拉列表
- 依赖下拉列表的数据验证
- 如何使用json数据创建下拉列表
- 在Moqui中,如何在html.ftl中加载数据库表数据作为下拉列表
- jQuery 设置和获取下拉列表和输入的本地存储数据
- 如何通过选择下拉列表中的选项从另一个 php 文件中获取数据
- 如何从 API 填充数据并加载到下拉列表中
- 如何在 PHP 中使用 OnChange 事件的下拉列表中选择一个选项后,对大量数据行设置分页
- 如何从下拉列表中填写表单数据
- 选择下拉列表需要在选中时显示提供商的详细信息-无法通过我的脚本显示url
- 我创建了一个下拉列表,以及如何显示所选项目的其他列数据
- 禁用数据自动关闭下拉列表基金会只需在一个菜单中
- 如何根据数据动态创建引导下拉列表
- 如何将数据库中查询到的数据放在下拉列表和可点击按钮中
- AngularJS 绑定要选择的数据下拉列表,当另一个选择下拉列表的值发生更改时
- 单击时捕获浏览器缓存的数据下拉列表
- 如果没有焦点的文本框中有数据,则创建新行,并且在第二行下拉列表中不提供数据
- 显示数据下拉列表从另一个文件(php,mysql,javascript)
- 如何将项目添加到文本框中提供的下拉列表中
- 更新图表中的数据(下拉列表)