如果语句来检查jQuery的道具(“禁用”)不工作

问题描述:

在下面的代码,我用一个单选按钮,显示两个不同的textarea命名textAtextB如果语句来检查jQuery的道具(“禁用”)不工作

<input onClick="optionA();" type="radio" name="button2" value="Yes" checked /><label>Option A</label> 
<input onClick="optionB();" type="radio" name="button2" value="No" /><label>Option B</label> 

<div id="textA" > 
<div class="input"><span><textarea class="textarea" id="textboxA" name="textA" type="text"></textarea></span> </div> 
</div> 

<div id="textB" style="display:none;"> 
<div class="input"><span><textarea class="textarea" id="textboxB" name="textB" type="text"></textarea></span> </div> 
</div> 

<div id="error" style="display:none;"></div> 

如果我选择textA文本区域,并添加数据对此,它将在文本框Currently Textbox A in use和文本B Currently Textbox B in use下方显示一条消息。我用下面的代码为:

function optionA() { 

$('#textA').prop("disabled",false); 
$('#textA').slideDown("fast"); 


document.getElementById("textboxB").value=""; 
$('#textB').slideUp("fast"); 
$('#textB').prop("disabled",true); 

} 

function optionB() { 

$('#textB').prop("disabled",false); 
$('#textB').slideDown("fast"); 

document.getElementById("textboxA").value=""; 
$('#textA').slideUp("fast"); 
$('#textA').prop("disabled",true); 

} 


$("#textboxA").keyup(function() { 

if((!$("#textboxA").val()) || ($("#textA").prop("disabled"))){ 

$("#error").slideUp("fast"); 
} 
else{ 

var message; 
message ="Currently TextboxA in use"; 
$("#error").slideDown("fast"); 
document.getElementById('error').innerHTML=message; 

} 
}); 

$("#textboxB").keyup(function() { 

if((!$("#textboxB").val()) || ($("#textB").prop("disabled"))){ 

$("#error").slideUp("fast"); 
} 
else{ 

var message; 
message ="Currently TextboxB in use"; 
$("#error").slideDown("fast"); 
document.getElementById('error').innerHTML=message; 

} 
}); 

面临的问题: 如果我切换从textAtextB,这表明在error div消息没有隐藏eventhough我已经加入$("#error").slideUp("fast");($("#textA").prop("disabled"))

这里是fiddle setup对于同一问题

+0

你的小提琴设置为我工作。你正在使用哪种浏览器? – Jan

+0

我尝试过使用chrome和FF。我在这里看到的是你使用文本框时看到的信息如果我切换到文本框B,需要隐藏 – acr

错误div的隐藏在textareas的“keyup”侦听器中执行。只需单击其中一个单选按钮即可轻松切换文本区。您需要将滑块添加到函数optionA()和optionB()。例如:

function optionA() { 

$('#textA').prop("disabled",false); 
$('#textA').slideDown("fast"); 

document.getElementById("textboxB").value=""; 
$('#textB').slideUp("fast"); 
$('#textB').prop("disabled",true); 

$("#error").slideUp("fast"); 
} 

查看更改小提琴:Fiddle