目前我的文本輸入前右側有一個隱藏字段的HTML表單。簡化版本如下:jQuery UI的自動完成與隱藏ID字段
<form>
<input type="hidden" name="key" id="key" />
<input type="text" name="account" id="account" />
<input type="button" value="Submit" />
</form>
該文本輸入已用jQuery UI Autocomplete進行了修飾。
$("#account").click(function() {
$(this).prev().val('');
$(this).val('');
}).autocomplete({
source: function (request, response) {
$.ajax({
url: "AJAX.asmx/GetAccounts",
data: "{ 'Search': '" + request.term + "' }",
dataType: "json",
type: "POST",
contentType: "application/json; charset=utf-8",
dataFilter: function (data) { return data; },
success: function (data) {
response($.map(data.d, function (item) {
return {
value: item.Value,
key: item.Key
}
}))
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert(textStatus + ": " + errorThrown);
}
});
},
select: function (event, ui) {
$(this).prev().val(ui.item.key);
},
change: function (event, ui) {
if ($(this).prev().val() == '') {
$(this).val('');
}
}
});
上述腳本功能完美,除了當用戶複製並粘貼信息時。大多數用戶將複製並粘貼並在AJAX帳戶搜索甚至完成之前完成提交。用戶不知道腳本需要他們從下拉列表中選擇結果,否則隱藏字段將不會填充。但是,大多數用戶都很不耐煩,並希望用最少的點擊操作。
我怎麼能攔截有一個結果的貼?在用戶點擊提交按鈕之前,我怎麼做到這一點?
+1你的代碼只是幫了我一些自動完成的工作:-) – PhilPursglove 2011-10-31 12:07:44