嗨我在jQuery中相当基本,并且陷入了一个脚本:
//hide all radio buttons first
$('#q11_6_1').parent().hide();
$('#q11_6_2').parent().hide();
$('#q11_6_3').parent().hide();
$('#q11_6_4').parent().hide();
$('#q11_6_5').parent().hide();
//check the length of the open text box
var other2text = $('#q11_6_other').val().length;
$('#q11_6_other').keypress(function(){
//if at least one character has been entered, then I want to show all radio buttons
if(other2text>=0)
{
$('#q11_6_1').parent().show();
$('#q11_6_2').parent().show();
$('#q11_6_3').parent().show();
$('#q11_6_4').parent().show();
$('#q11_6_5').parent().show();
}
//else I want to hide all
else
{
$('#q11_6_1').parent().hide();
$('#q11_6_2').parent().hide();
$('#q11_6_3').parent().hide();
$('#q11_6_4').parent().hide();
$('#q11_6_5').parent().hide();
}
});
“if condition”的第一部分正在工作,但是当我清除了q11_6_other中的所有文本时,这些单选按钮将不会隐藏。我认为“其他”部分不起作用,但不确定如何绕过它。
非常感谢你的帮助!!!
答案 0 :(得分:1)
将变量other2text
放在事件处理函数中:
$('#q11_6_other').keypress(function(){
var other2text = $('#q11_6_other').val().length;
另外,我建议您使用keyup
代替keypress
。但是,如果您这样做,则需要将other2text>=0
更改为other2text>0
答案 1 :(得分:0)
您的other2text变量当前在页面加载时填充一次。你想要的是每按一次按钮就让它运行,所以把这个变量放在函数中:
$('#q11_6_other').keypress(function() {
var other2text = $('#q11_6_other').val().length;
...
答案 2 :(得分:0)
将变量other2text放在事件处理程序
中$('#q11_6_other').keypress(function() {
var other2text = $('#q11_6_other').val().length;
答案 3 :(得分:0)
这应该可以解决问题
$('#q11_6_other').keypress(function() {
var other2text = $('#q11_6_other').val().length;