为什么我不能在jquery中获得这个单选按钮的状态?
问题描述:
我有一段salesforce visualforce页面的代码。为什么我不能在jquery中获得这个单选按钮的状态?
<div id="testId" class="row mb25 mt15">
<div class="col-md-6 plr0">
<p class="en">Would you like to add a co-applicant?<span class="asteriskField">*</span> </p>
<p class="fr">Would you like to add a co-applicant?<span class="asteriskField">*</span> </p>
</div>
<div class="col-md-4 mt-5r">
<apex:selectRadio id="innerTestId" value="{!client.Would_you_like_to_recieve_future_promo__c}" styleClass="radio">
<div class="row">
<div class="col-sm-6">
<div class="radio pa-cus">
<apex:selectOption itemLabel="Yes" itemValue="Yes"/>
</div>
</div>
<div class="col-sm-6">
<div class="radio pa-cus">
<apex:selectOption itemLabel="No" itemValue="No"/>
</div>
</div>
</div>
</apex:selectRadio>
</div>
</div>
当点击提交按钮,我需要有一个jQuery脚本检查渡过单选按钮被选中Yes
或No
这样我就可以执行一些自定义的验证。我通过将onclick="validateInnerTestId();"
添加到提交按钮来调用此函数。
我的问题是,我无法阅读/检查单选按钮是选择是或否或真或假。如果我能找出他们在那么什么状态,我可以做我的
这里是我的目标
<script type="text/javascript">
<script>
function validateInnerTestId()
{
if(innerTestId is Selected as Yes)
{
execute fucntionX()
}
else
{
execute functionY()
}
}
<script>
下面是我如何试图读出单选按钮的值一些例子:
alert($("#innerTestId").itemValue());
这行不返回任何
alert($("#innerTestId").val());
此行也不会返回任何
,这if else
总是返回no
if ($('innerTestId').is(':checked'))
{
alert("yes");
}
else
{
alert("no");
}
有没有人有关于如何检查在这种情况下,单选按钮,任何想法? 谢谢
答
作为@Andrea在评论中提到,你只需在选择器中忘记#
。下面有一个简单的例子来演示使用情况。如果你的代码仍然无法运行,我们需要更多的信息。
- 你确定validateInnerTestId()被调用吗?
- 它是如何被调用的?
$('#doit').on('click',function() {
var str = "";
if ($('#test').is(':checked')) {
str += "Toggle checked? YES\n"
} else {
str += "Toggle checked? NO\n"
}
if ($('#option1').is(':checked')) {
str += "Option checked: 1";
} else if ($('#option2').is(':checked')) {
str += "Option checked: 2";
} else {
str += "Option checked: NONE";
}
alert(str);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
<input id="test" name="toggle" type="checkbox" value="" />
<label for="toggle">Toggle</label>
</div>
<div>
<input type="radio" id="option1" name="options" value="1">
<label for="option1">Option 1</label>
<input type="radio" id="option2" name="options" value="2">
<label for="option1">Option 2</label>
</div>
<br />
<input id="doit" type="button" name="test" value="Tell me!" />
这也可能是一些做的ASP/Salesforce的实施?也许有人对这个问题的答案可能会帮助:How to check if an option is selected?
答
VF标签使用动态ID,您应该做以下:
function validateInnerTestId(){
if($('#{!component.innerTestId}').is(':checked')){
execute fucntionX()
}
else{
execute functionY()
}
}
您是否尝试过使用'如果($(“#innerTestId”)是(。 ':检查'))'而不是? –
是的,我也尝试过,即使单选按钮被选中,它也总是返回“否”。 – CB4
您是否使用点击事件来调用该函数? –