Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 如何使FireFox在点击相关文本框时不选择单选按钮?_Jquery_Asp.net_Firefox - Fatal编程技术网

Jquery 如何使FireFox在点击相关文本框时不选择单选按钮?

Jquery 如何使FireFox在点击相关文本框时不选择单选按钮?,jquery,asp.net,firefox,Jquery,Asp.net,Firefox,我有一个文本框,它位于单选按钮的标签内。在FireFox(v8.0.1)中,当您单击此文本框时,它会将鼠标上的焦点更改为RadioButton,这意味着不再选择该文本框 这让FireFox用户产生了一种错觉,即文本框无法被选中,即使你可以通过点击或双击来选择它 <asp:RadioButton runat="server" GroupName="PaymentAmount" ID="rbAmount_Other" /> <asp:Label runat="server" Ass

我有一个
文本框
,它位于
单选按钮的
标签内。在FireFox(v8.0.1)中,当您单击此文本框时,它会将鼠标上的焦点更改为RadioButton,这意味着不再选择该文本框

这让FireFox用户产生了一种错觉,即文本框无法被选中,即使你可以通过点击或双击来选择它

<asp:RadioButton runat="server" GroupName="PaymentAmount" ID="rbAmount_Other" />
<asp:Label runat="server" AssociatedControlID="rbAmount_Other">
    Some Text
    <asp:TextBox runat="server" ID="txtOtherAmount" CssClass="money-text" />
    Some other Text
</asp:Label>
删除第一个标签中的“for”属性:

<input id="ctl00_cphPageContent_rbAmount_Other" type="radio" name="ctl00$cphPageContent$PaymentAmount" value="rbAmount_Other" />
<label for=""><label for="ctl00_cphPageContent_rbAmount_Other">Pay other amount</label><input name="ctl00$cphPageContent$txtOtherAmount" type="text" id="ctl00_cphPageContent_txtOtherAmount" class="money-text" AssociatedControlId="txtOtherAmount" />
    <div class="align-with-radiobutton small-text">
        The minimum amount for web payments is
        <span id="ctl00_cphPageContent_lblMinPayment">$20.00</span>. If you are looking to pay a lower
        amount, please <a href="Contact.aspx">contact us</a> and speak with a representative.
    </div>
</label>

支付其他金额
网络支付的最低金额为
$20.00. 如果您希望支付较低的费用
请给我一个金额,并与一位代表交谈。
我认为嵌套标签不是一个好主意。

删除第一个标签中的“for”属性:

<input id="ctl00_cphPageContent_rbAmount_Other" type="radio" name="ctl00$cphPageContent$PaymentAmount" value="rbAmount_Other" />
<label for=""><label for="ctl00_cphPageContent_rbAmount_Other">Pay other amount</label><input name="ctl00$cphPageContent$txtOtherAmount" type="text" id="ctl00_cphPageContent_txtOtherAmount" class="money-text" AssociatedControlId="txtOtherAmount" />
    <div class="align-with-radiobutton small-text">
        The minimum amount for web payments is
        <span id="ctl00_cphPageContent_lblMinPayment">$20.00</span>. If you are looking to pay a lower
        amount, please <a href="Contact.aspx">contact us</a> and speak with a representative.
    </div>
</label>

支付其他金额
网络支付的最低金额为
$20.00. 如果您希望支付较低的费用
请给我一个金额,并与一位代表交谈。

我不认为嵌套标签是一个好主意。

如果您需要保持选择或突出显示单选按钮的行为,请使用以下方法:

$(function() {
    $("#ctl00_cphPageContent_txtOtherAmount").click(function(e) {
        e.preventDefault();
        $("#ctl00_cphPageContent_rbAmount_Other").click();
    });
})

如果您需要保持选择或突出显示单选按钮的行为,请使用以下方法:

$(function() {
    $("#ctl00_cphPageContent_txtOtherAmount").click(function(e) {
        e.preventDefault();
        $("#ctl00_cphPageContent_rbAmount_Other").click();
    });
})

我在
RadioButton
上使用
.focus()
事件将焦点设置为
文本框
,在
文本框
上使用
.focus()
事件选择
RadioButton

它现在可以正确地用于键盘和鼠标导航

$('#<%= txtOtherAmount.ClientId %>').focus(function () {
    $('#<%= rbAmount_Other.ClientId %>').prop('checked', true);
});

$('#<%= rbAmount_Other.ClientId %>').focus(function () {
    $('#<%= txtOtherAmount.ClientId %>').focus();
});
$('#')。焦点(函数(){
$('#').prop('checked',true);
});
$('#')。焦点(函数(){
$('#')。焦点();
});

我在
RadioButton
上使用
.focus()
事件将焦点设置为
文本框
,在
文本框
上使用
.focus()
事件选择
RadioButton

它现在可以正确地用于键盘和鼠标导航

$('#<%= txtOtherAmount.ClientId %>').focus(function () {
    $('#<%= rbAmount_Other.ClientId %>').prop('checked', true);
});

$('#<%= rbAmount_Other.ClientId %>').focus(function () {
    $('#<%= txtOtherAmount.ClientId %>').focus();
});
$('#')。焦点(函数(){
$('#').prop('checked',true);
});
$('#')。焦点(函数(){
$('#')。焦点();
});

HTML输出比.NET源代码更有帮助。这一切都发生在客户端上,所以显示客户端代码。您是否尝试过阻止单选按钮的.click()事件的默认行为?我认为当您单击单选按钮的标签(或标签内的任何内容)时,会触发该事件。@itsmequinn是的,我尝试了
event.preventDefault()
event.stopPropagation()
,但两者都不起作用。您的HTML输出将比.NET源代码更有用。这一切都发生在客户端上,所以显示客户端代码。您是否尝试过阻止单选按钮的.click()事件的默认行为?我认为当您单击单选按钮的标签(或标签内的任何内容)时会触发该事件。@itsmequinn是的,我尝试了
event.preventDefault()
event.stopPropagation()
,但两者都不起作用,但当文本或文本框悬停或单击时,我失去了RadioButton高亮显示或选中的默认行为,然后向文本框添加onclick事件以选中单选按钮。你不能两全其美。我找到了一个有效的解决方案,并将其作为答案发布。我同意嵌套标签是个坏主意,但我真的不知道如何在没有大量额外工作的情况下得到我想要的东西,既然这样做了,我就这样做:)但是当文本或文本框悬停或单击时,我失去了单选按钮高亮显示或选中的默认行为,然后向文本框添加onclick事件以选中单选按钮。你不能两全其美。我找到了一个有效的解决方案,并将其作为答案发布。我同意嵌套标签是一个坏主意,但我真的不确定如何在不做大量额外工作的情况下获得我想要的东西,既然这样做有效,我将使用它:)这只适用于鼠标单击,而不适用于键盘事件,例如对控件进行选项卡操作。另外,我尝试了
.preventDefault()
.stopPropagation()
两种方法,但两种方法都不起作用。这只适用于鼠标单击,而不适用于键盘事件,例如对控件进行选项卡切换。另外,我尝试了
.preventDefault()
.stopPropagation()
这两种方法,但都不起作用。