javascript - 使用javascript连接多个表单输入值

标签 javascript html concatenation

我对 HTML/javascript 很陌生。我正在尝试创建一个包含四个字段的表单:第一个字段 (texta) 是 readonly,第二个字段 (selectiona) 是一个下拉列表中,第三个字段 (textb) 是 readonly,第四个字段(句子)是其他三个字段的串联。我不明白为什么我的 javascript 不工作:

<script>
$('#texta, #selectiona, #textb, #selectionb').bind('keypress blur', function() { 
    $('#sentence').val($('#texta').val() + ' ' +
    $('#selectiona').val() + ' ' +
    $('#textb').val() + ' ' +
    $('#selectionb').val() );
});
<script>
<p>Text A:<input id=texta readonly value="My favorite car is a: "></p>
<p>Selection A: <select id=selectiona>
	<option>Select...</option>
	<option>Toyota</option>
	<option>Honda</option>
	</select></p>
<p>Text B: <input id=textb readonly value="because they are "></p>
<p>Selection B: <select id=selectionb>
	<option>Select...</option>
	<option>reliable.</option>
	<option>fun to drive.</option>
	</select></p>
<p>Sentence: <input id=sentence readonly></p>

最佳答案

如果您在 HTML 标记属性周围添加引号,您的代码应该可以正常工作。

注意 1:您的 JS 代码是有效代码,但最好将 bind 替换为 on,因为 bind 方法自 jQuery 版本 3 以来一直是专用的,检查:

$('#texta, #selectiona, #textb, #selectionb').on('keypress blur', function() {

注意 2: 如果您将要附加事件的所有元素都提供给一个公共(public)类,然后将事件附加到此类,您的代码会更有效率:

$('.common_class').on('change input', function() {

您还可以为 inputtextarea 使用 input 事件,为 使用 change >选择的。

$('#texta, #selectiona, #textb, #selectionb').bind('input change', function() {
  $('#sentence').val($('#texta').val() + ' ' +
    $('#selectiona').val() + ' ' +
    $('#textb').val() + ' ' +
    $('#selectionb').val());
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<p>Text A:<input id="texta" readonly value="My favorite car is a: "></p>
<p>Selection A:
  <select id="selectiona">
    <option>Select...</option>
    <option>Toyota</option>
    <option>Honda</option>
  </select>
</p>
<p>Text B: <input id="textb" readonly value="because they are "></p>
<p>Selection B:
  <select id="selectionb">
    <option>Select...</option>
    <option>reliable.</option>
    <option>fun to drive.</option>
  </select>
</p>
<p>Sentence: <input id="sentence" style="width:70%" readonly></p>

关于javascript - 使用javascript连接多个表单输入值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51383114/

相关文章:

javascript - Dojo 树 - 延迟直到服务器返回数据

Javascript ES6 模块不通过 .htaccess 基本身份验证

javascript - 有没有一种巧妙的方法可以在 JavaScript 中进行未定义的合并?

html - 通过 CSS 在 html 页面上应用填充?

jquery - 为 li 元素设置背景图像

使用 ## 连接一个字符串,使用 C 中的整数值连接微 Controller

r - 使用 dplyr、group_by 和 mutate() 或汇总 () & str_c() 或 paste() & 折叠连接字符串/行,但保持 NA 和所有字符串

javascript - 使用 javascript 选择除一个文本框之外的所有文本框

ios - 从后台模式 iOS 重新进入应用程序后转到登录屏幕

mysql - 将一个表中两列的连接值插入到另一个表的单个列中