【发布时间】:2018-05-12 03:12:03
【问题描述】:
我正在尝试连接当用户从客户下拉列表中进行选择并导致地址行也更改(自动填充)时自动填充的城市、州和邮政编码输入字段。
我已经尝试了以下帖子中提出的所有建议,但没有一个有效,因为没有一个得到“接受”的答案:
Concatenate multiple HTML text inputs with stored variable、Concatenate two text fields in html 和 How to concat strings from inputs with javascript?
这是我当前显示输入框的代码,但其中没有显示任何值。当我开始工作时,我打算“隐藏”城市、州、邮政编码输入,以便页面上只显示连接的输入行。
echo '<input style="float:left; margin-left:182px; margin-top:-6px; border:0px; background:none; box-shadow:none;" type="text" id="city" name="city" readonly="readonly" value="">';
echo '<input style="float:left; border:0px; margin-top:-6px; background:none; box-shadow:none;" type="text" id="state" name="state" readonly="readonly" value="">';
echo '<input style="float:left; border:0px; margin-top:-6px; background:none; box-shadow:none;" type="text" id="zip" name="zip" readonly="readonly" value="">';
echo '<input type="text" id="custAdd" name="custAdd">';
<script>
$("custAdd").change(function(){
document.getElementById('custAdd').value =
document.getElementById('city').value + ', ' +
document.getElementById('state').value + ' ' +
document.getElementById('zip').value;
};
</script>
提前感谢您抽出宝贵时间以及您可以提供的任何建议。
【问题讨论】:
-
当你使用 jQuery 访问一个 DOM 元素时,你需要给它一个有效的选择器。要按 ID 进行选择,请输入
#,后跟相关 ID。因此,要访问custAdd输入,您需要使用$("#custAdd"),而不是$("custAdd")。 -
其次,通过在输入上调用
change函数,您表明您希望在输入更改时调用提供的处理程序(您的内部函数)。因此,您在这里所说的是,当custAdd输入发生更改时(例如,通过用户输入),该值应更改为城市、州和邮政编码的值。这肯定不是你想要的。 -
从您的描述中不太清楚,但您似乎希望有一个可见的输入,其中有人可以输入带有逗号的地址,并设置(最终隐藏的)城市、州和邮政编码输入?如果是这样,那么您要查找的不是串联。
-
@Greg Schmidt 感谢您指出 jQuery 中我的 ID 中缺少的 #。我很抱歉没有更清楚我的意图。现在,当在客户下拉列表中进行选择时,地址、城市、州和邮政编码输入字段会自动填充。我现在需要发生的是,当该地址输入感知到自动填充的文本更改了它时,我希望其他 3 个输入字段(城市、州、zip 也已由下拉菜单自动填充)连接。如果这是在单独的输入字段中,或者它们是否可以按原样连接,对我来说并不重要,无论哪种方法有效。
-
这三个字段是否只会作为一个整体发生变化,即如果一个字段发生变化,您知道其他两个字段也会发生变化?
标签: javascript html logic string-concatenation