【发布时间】:2017-06-22 04:55:16
【问题描述】:
如果用户从下拉列表中选择'Yes',我正在尝试显示两个额外的表单字段。如果用户没有从下拉列表中选择'Yes',那么这两个额外字段不是必需的并且被禁用,但是如果选择'Yes',则这些字段必须在提交表单之前填写。到目前为止我有这个,但是它不起作用。如果有人能指出这个问题,将不胜感激。
HTML:
<form id="form" method="post" action="action.php">
<div class="form-group">
<label class="control-label">Defect?</label>
<select onclick='checkIfYes()' class="select form-control" id="defect" name="defect">
<option id="No" value="No">No</option>
<option id="Yes" value="Yes">Yes</option>
</select>
</div>
<div id="extra" name="extra" style="display: none">
<label class="control-label" for="desc">Description</label>
<input class="form-control" type="text" id="desc" name="desc" required disabled>
<label class="control-label" for="auth_by">Authorised By</label>
<input class="form-control" type="text" id="auth_by" name="auth_by" required disabled>
</div>
<div class="form-group">
<button class="btn btn-info" id="submit" name="submit" type="submit">Submit
</button>
</div>
</form>
JavaScript:
function checkIfYes() {
if (document.getElementById('defect').value == 'Yes') {
document.getElementById('extra').style.display = '';
document.getElementById('auth_by').disabled = false;
document.getElementById('desc').disabled = false;
} else {
document.getElementById('extra').style.display = 'none';
}
}
【问题讨论】:
-
当我运行这个小提琴时,我得到 checkIfYes 没有定义。 checkIfYes 需要在 html 之前定义。见小提琴:jsfiddle.net/z6Lm1m5x/16
-
@MattLaza - 如果选择“是”,则现在显示字段,但如果选择“否”,则不允许您提交表单。
-
抱歉,我似乎无法在小提琴中复制它。是和否都提交表格。它在小提琴中重定向。检查是否有任何额外的 javascripts 错误被抛出?
-
@MattLaza 没问题,这是我的问题,现在可以使用。如果您想创建一个答案,我将标记为正确。感谢您的帮助!
标签: javascript jquery html