【发布时间】:2014-02-20 22:58:30
【问题描述】:
我在设置文本字段值然后再次使用 jquery 时遇到问题。
我有 2 个用于 jQuery 自动完成的输入字段:
<input type="text" name="AccountName" id="AccountName" size="50">
<input type="text" id="NewAccountId" name="NewAccountId" value="0">
当我调用此字段的自动完成功能时,它会将帐户 ID 输入到 NewAccountId 字段中。我知道这行得通;你可以在屏幕上看到它。代码是:
$(function()
{$("#AccountName").autocomplete({
source: "../cfc/ajax_code.cfc?method=AccountSearchId",
minLength: 2,
select: function(event, ui) {
$('#NewAccountId').val(ui.item.custid);
ContactListUpdate(this.MyCustId);} }); });
当我转到下一个字段时,我通过自动完成再次调用数据库。
<input type="text" name="TransactionName" id="TransactionName" size="20">
jquery函数是:
$(function()
{$("#TransactionName").autocomplete({
source: "../cfc/ajax_code.cfc?method=TransactionLookUp&MyCustomerId="+$("#NewAccountId").val(),
minLength: 2,
select: function(event, ui) {
$('#MyTransactionId').val(ui.item.transid);} }); });
所以这是我的问题...
当我得到我的帐户名时,它实际上在 NewAccountId 字段中设置了我的 ID。但是,当我运行事务自动完成时,它会从 NewAccountId 字段(通常为“0”)而不是第一个函数中获取原始加载值。我知道代码有效,因为在 FireFox 中,如果我使用 NewAccountId 字段中的值刷新表单,代码将使用该值过滤我的事务 ID。
在搜索帮助站点 2 天后,我发现最接近的答案是布尔脏标志值没有改变,但还没有找到如何覆盖它。我尝试使用以下选项更新该字段,但无济于事:
this.MyCustId = $("#NewAccountId").val();
document.getElementById('NewAccountId').setAttribute('value',this.MyCustId);
或
this.MyCustId = $("#NewAccountId").val();
document.getElementById('MyTestId').value = this.MyCustId;
这两个选项都设置了字段值,但不会更改原始字段值。
并且雪上加霜,正如您在第一个自动完成函数中看到的那样,我调用了 ContactListUpdate javascript - 而不是 jquery - 函数。这会调用一个更新来更改选择列表中的联系人。它使用新的帐户 ID。有用!
另外,在我提交表单后,数据字段中的值正是我想要的。只有当我调用脚本来获取交易时它才不起作用。
帮助!有什么想法吗?
谢谢。
【问题讨论】:
标签: jquery input autocomplete