如果用户从下拉菜单中选择一个选项,我试图在代码中显示“提交”按钮。我想我可以通过使用value属性来做到这一点。请在下面查看我的代码,我包含了一些JavaScript,但是我知道这可能是完全错误的!
<select id="button1" class="button" title="Button 1">
<option value="0">--Please choose an option for the first blank--</option>
<option id="buttonText1_1" class="buttonText" value="1">Arsenal</option>
<option id="buttonText1_2" class="buttonText" value="2">Spurs</option>
<option id="buttonText1_3" class="buttonText" value="3">Liverpool</option>
<option id="buttonText1_4" class="buttonText" value="4">Man Utd</option>
<option id="buttonText1_5" class="buttonText" value="5">Man City</option>
</select>
<div class="break"></div>
<select id="button2" class="button" title="Button 2">
<option value="0">--Please choose an option for the second blank--</option>
<option id="buttonText2_1" class="buttonText" value="1">Lampard</option>
<option id="buttonText2_2" class="buttonText" value="2">Gerrard</option>
<option id="buttonText2_3" class="buttonText" value="3">Scholes</option>
<option id="buttonText2_4" class="buttonText" value="4">Viera</option>
<option id="buttonText2_5" class="buttonText" value="5">Keane</option>
</select>
<div class="break"></div>
<button title="Submit Button" id="submitButton" class="button" onClick="submitClick()">
<p id="submitText" class="buttonText">Submit</p>
</button>
JS:
document.getElementById("button1").onchange = function() {
if(this.value != 0) {
optionVal++;
}
}
document.getElementById("button2").onchange = function() {
if(this.value != 0) {
optionVal++;
}
}
function activateSub() {
$('#submitButton').css('display', 'block');
}
function doSomething() {
if(optionVal != 0) {
activateSub();
}
}
我已经用此代码输入了JSFiddle。在此先谢谢您!
答案 0 :(得分:4)
使用 jQuery :
$('select').on('change', function() {
// shows the button if even one select has selected option
$btn = $('#submitButton');
$btn.hide();
$('select').each(function() {
if ($(this).val() != 0) {
$btn.show();
return false;
}
});
});
我已经分叉了您的Fiddle
答案 1 :(得分:0)
如果仅当两个选择的值都大于“ 0”时才显示按钮,则可以通过以下方式进行检查:
VanillaJS:
function submitVisiblity() {
// If you use numeric value into options' "value" attribute you should convert (parse) the option value from a string to an integer
if (parseInt(document.getElementById("button1").value) > 0 &&
parseInt(document.getElementById("button2").value) > 0) {
document.getElementById('submitButton').style.display = 'block'
} else {
document.getElementById('submitButton').style.display = 'none'
}
}
document.getElementById("button1").onchange = submitVisiblity
document.getElementById("button2").onchange = submitVisiblity
jQuery:
$("#button1,#button2").on('change',function() {
if (parseInt($("#button1").val()) > 0 && parseInt($("#button2").val()) > 0) {
$('#submitButton').show()
} else {
$('#submitButton').hide()
}
});
再见:)