我已经在表单上进行了自动填充,可以添加新行。
但是我的自动完成仅锁定第一项。
你能帮助我让自动完成工作在附加行上。
jsFiddle:https://jsfiddle.net/r65x9aj0/3/
使用Javascript:
def run_processes():
print ("starting p1")
print ("starting p2")
##run_process_1()
##run_process_2()
p1 = Process(target = run_process_1, args = ())
p2 = Process(target = run_process_2, args = ())
p1.start()
p2.start()
print p1, p1.is_alive()
print p2, p2.is_alive()
p1.join()
p2.join()
print ("finished")
HTML:
var globalNewIndex = 0;
var availableAttributes = [
"account_address",
"account_address_city",
"account_address_country",
"account_address_state",
"account_address_street1",
"account_address_street2",
"account_address_zip",
"account_email",
"account_login",
"account_name",
"account_number",
"account_telephone"
];
$(document).ready(function() {
$('#fixed_name_'+globalNewIndex).autocomplete({
source: availableAttributes
});
$("#add").click(function() {
var newIndex = globalNewIndex+1;
var changeIds = function(i, val) {
return val.replace(globalNewIndex,newIndex);
}
$('#mytable tbody>tr:last').clone(true).insertAfter('#mytable tbody>tr:last');
$('#mytable tbody>tr:last input').attr('name', changeIds ).attr('id', changeIds );
globalNewIndex++;
$('#fixed_name_'+globalNewIndex).autocomplete({
source: availableAttributes
});
$('#mytable tbody>tr:last .emptythis').val('');
$("#mytable tbody>tr:last").each(function() {this.reset();});
return false;
});
});
答案 0 :(得分:1)
以下是public partial class Prod
{
public string ProdID { get; set; }
public string BrandID { get { return ProdID.Split('-')[0]; } }
public virtual Brand Brand { get; set; }
}
public class Brand
{
public string BrandID { get; set; }
public string Name { get; set; }
public virtual ICollection<Prod> Prods { get; set; }
}
后的更新jsfiddle:
<强> Updated fiddle 强>
我动态初始化自动完成并为新行创建了一个模板,因为克隆函数克隆了自动完成的实例,这是不好的。
这是您的新javascript:
code
答案 1 :(得分:0)
由于您正在动态添加文本框而无法正常工作,而对于动态html,自动完成功能会以不同的方式实例化,如:
var selector = '.searchInput';
$(document).on('keydown.autocomplete', selector, function() {
$(this).autocomplete(options);
});
答案 2 :(得分:0)
// previous code
$('#mytable tbody>tr:last').clone(true).insertAfter('#mytable tbody>tr:last');
$('#mytable tbody>tr:last input').attr('name', changeIds ).attr('id', changeIds );
// changed lines of code
var $newRow = $('<tr>' + $('#mytable tbody>tr:first').html() + '</tr>');
$newRow.find('input').attr('name', changeIds ).attr('id', changeIds );
$('#mytable tbody').append($newRow);
由于克隆(true),代码无效。 我会建议该行的“模板”功能。
至于之前的评论,我不会建议把它.on('keypress', ...
,因为每按一次键就会被触发(但是你可以用one
只听'一次',但这赢了'解决你的问题,因为它不会在第二次被解雇。