このhttp://af-design.com/blog/2010/05/12/using-jquery-uis-autocomplete-to-populate-a-form/スクリプトは、都市に基づいて州と zip を自動的に入力します。
id="city" のような id を持つ行が 1 つあります。追加の行が必要な場合は、id="city1"、id="city2" などを使用する必要があります。
JavaScriptコードでは、次のようなものを使用できます
$("#city").val(ui.item.city);
$("#city1").val(ui.item.city1);
多くの行がある場合、これは問題ありません。
だから変えようとしている。以下は変更されたコードです
$(document).ready(function(){
var ac_config = {
source: "__demo_cities.php",
select: function(event, ui){
$('[id^="city"]').val(ui.item.city);
$('[id^="state"]').val(ui.item.state);
$('[id^="zip"]').val(ui.item.zip);
},
minLength:1
};
$('[id^="city"]').autocomplete(ac_config);
});
HTML
<input type="text" name="city[]" id="city" value="" />
<input type="text" name="state[]" id="state" value="" />
<input type="text" name="zip[]" id="zip" value="" />
<br>
<input type="text" name="city[]" id="city1" value="" />
<input type="text" name="state[]" id="state1" value="" />
<input type="text" name="zip[]" id="zip1" value="" />
city
スクリプトに何かを入力すると、自動的id="state"
に , (それで問題ありません) が入力されますが、自動的に , andid="zip"
も入力されます(これは必要ありません)。id="city1"
id="state1"
id="zip1"
必要な動作: に何かを入力するとid="city"
、 と のみが自動的に入力され、他のすべてのフィールドは空白/変更されません。を入力すると、 と のみが自動的に入力され、他のすべてのフィールドは空白/変更されません。id="state"
id="zip"
id="city1"
id="state"
id="zip"
@JNFのアドバイスに基づいて、機能するコードが1つあります
$(document).ready(function(){
var ac_config = {
source: "__demo_cities.php",
select: function(event, ui){
$(this).closest(".myForm").find('[id^="city"]').val(ui.item.city);
$(this).closest(".myForm").find('[id^="state"]').val(ui.item.state);
$(this).closest(".myForm").find('[id^="zip"]').val(ui.item.zip);
},
minLength:1
};
$('[id^="city"]').autocomplete(ac_config);
});