将数据输入和下拉选择组合到js中
Combination of data entry and drop down selections into a js
我的页面中有一个数据输入部分,用户必须将他/她的名字放在空白处,然后在是/否下拉选项之间进行选择。填写完毕后,用户单击"生成",所有信息、问题和答案都会显示在下面。我如何管理js将开放式和下拉式问题/答案都考虑到结果中?以及我如何调整结果的字体大小?这就是我目前所拥有的。
<form name="myForm">
Name: <input type="text" name="firstname">
<font size="3">
<label for="q7">- Done it?</label>
</font>
<select id="q7">
<option>Yes</option>
<option>No</option>
</select>
<input type="button" onclick="populateResults()" value="Generate">
<div id="result"></div>
</form>
<script>
function populateResults() {
var selects = document.forms.myForm.querySelectorAll('select'),
result = document.getElementById("result");
Array.from(selects).forEach(function(a, i) {
var answer = a.options[a.selectedIndex].text,
question = selects[i].labels[0].textContent;
result.innerHTML += question + ' ' + answer + '
<br>';
})
}
</script>
</body>
</html>
首先,对于select中的option
,它应该具有value
属性。
你把代码搞得太复杂了。
你可以这样做:
<form name="myForm">
Name: <input type="text" name="firstname" id="firstname">
<font size="3">
<label for="q7">- Done it?</label>
</font>
<select id="q7">
<option value="yes">Yes</option>
<option value="no">No</option>
</select>
<input type="button" onclick="populateResults()" value="Generate">
<div id="result"></div>
</form>
<script src="jquery.js"></script>
<script>
function populateResults() {
var select = $('#q7').val();
var name = $('#firstname').val();
var result = name + ' - Done it? ' + select;
$('#result').text(result);
}
</script>
这很冗长,但在这里我添加了一些id,从标记中删除了代码,在标签中添加了一个类,这样我就可以找到一个样式:
修订后的标记:
<form id="myform" name="myForm">Name:
<input type="text" name="firstname" id="firstname" />
<label for="q7" class="mylabel">- Done it?</label>
<select id="q7">
<option value="yes">Yes</option>
<option value="no">No</option>
</select>
<input type="button" value="Generate" id="generate" />
<div id="result"></div>
</form>
添加此CSS(删除了过时的字体标签)
.mylabel {
font-size:1.5em;
}
VERBOSE代码(清理它,详细说明意图)
function populateResults() {
var myselect = $('#q7');
var selectedText = myselect.find('option:selected').text();
var selectedVal = myselect.val();
var question = myselect[0].labels[0].textContent;//same thing
question = myselect.siblings('.mylabel').text();// same thing
$('#result').append(question + ' :' + selectedText + ":" + selectedVal + '<br />');
}
$('#myform').on('click', '#generate', populateResults);
相关文章:
- 如何将具有相同功能的两个select html标签的两个JS组合在一起
- ramda.js中的函数组合
- 在 JS 中组合两个正则表达式
- 如何调用一个函数,其名称是通过在node.js中组合一些变量来动态创建的
- 如何通过API或JS组合视频和音频
- js组合对象只返回一个id
- html+css+js组合在Google Chrome或Safari浏览器中无法正常工作
- 从JS中组合JS
- JS-Can't组合lib文件
- 如何隐藏由Chart.js V2.0绘制的组合折线图和条形图中的点
- D3.js组合条形图和折线图
- 谷歌地图API JS-放置两个组合字段的自动完成
- 什么's是在Node.js中公开和组合错误的最佳方式
- 如何在字符串上组合JS replace()方法中的3个正则表达式模式
- 如何在knex.js中组合列
- 我可以将RequireJs模块和require.js本身组合成一个js包吗
- 最小化/组合JS文件的最大大小
- 组合JS文件的最佳实践
- 检测纸张中的 ctrl+z(和其他控制组合.js
- Typescript智能感知在组合js文件时不起作用