我有一个动态生成的多个选择/输入对的集合,带有生成的ID。
剥离:
<?php foreach ($products as $product) { ?>
<select id="option_<?php echo $matching_id; ?>">
<?php foreach ($options as $option) { ?>
<option title="<?php echo $inputvalue ?>"></option>
<?php } ?>
</select>
<input id="update_<?php echo $matching_id; ?>" type="text" value="" />
<?php } ?>
我有这个jQuery用所选选项更新输入字段的title属性(因为其他东西需要使用title属性):
$(document).ready(function () {
$('select').change(function() {
$('input').val($(this).find("option:selected").attr("title"));
});
});
当然这是错误的。无论更改哪个选择框,它都会使用相同的值更新所有输入字段。
我只需要更改匹配ID号的输入框。 $ matching_id变量始终是一个数字,如果相关的话。
一些乐于助人的人能指出我正确的方向吗?
答案 0 :(得分:0)
$(document).ready(function () {
$('select[id^="option_"]').change(function() {
$('input[id="update_' + $(this).attr('id').replace('option_', '') + '"]').val($(this).find("option:selected").attr("title"));
});
});
当select
以id
开头时,仅选择"option"
,不一定要$matching_id
为数字。
答案 1 :(得分:0)
$(function(){
$('select').change(function(){
$('#update_' + $(this).attr('id').replace(/\D/g,'')).val($(this).find("option:selected").attr("title"));
});
});
如果任何选择发生变化,它会找到一个元素[input],其id为'update_'加上其自身id的数字部分,并将其值设置为等于所选选项的标题。