Javascript jQuery在选择单选按钮不工作时显示警报框

Javascript jQuery在选择单选按钮不工作时显示警报框,javascript,jquery,Javascript,Jquery,我在下面的jQuery代码中花了很多时间,现在它只是在选择单选按钮时显示一个警报框;然而,我无法精确指出为什么我的函数根本没有执行 我在这里做了一个jsfiddle: 以下是我到目前为止得到的信息: $(document).ready(function(){ $('input[name="years"]').change(function() { if($('#years_3_Years').is(':checked')) { alert("36 Months");

我在下面的jQuery代码中花了很多时间,现在它只是在选择单选按钮时显示一个警报框;然而,我无法精确指出为什么我的函数根本没有执行

我在这里做了一个jsfiddle:

以下是我到目前为止得到的信息:

$(document).ready(function(){ 
$('input[name="years"]').change(function() {
     if($('#years_3_Years').is(':checked')) { 
     alert("36 Months"); 
   } else if ($('#years_4_Years').is(':checked')){
     alert("48 Months");
   } else if ($('#years_5_Years').is(':checked')){
     alert("60 Months");
   }
};
 );
}
);



<form id="plangen" action="/calculate" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="&#x2713;" /><input type="hidden" name="authenticity_token" value="JkGFl38I+e1Kc/JJFW1tIKdJAw7rGuDe6yeTKHLRDOjcI5f3yMDeQADZYGw3/ku2fuRJip0P2nAAPtFt/o1BvA==" />
<label for="amt">Car loan amount:</label>
<input type="text" name="amt" id="amt" /><br>
<label for="dp">Down Payment:</label>
<input type="text" name="dp" id="dp" /><br>
<label for="int">Annual Interest:</label>
<input type="text" name="int" id="int" /><br>

<input type="radio" name="years" id="years_3_Years" value="3 Years" />
<label for="years3_child">Will pay in 3 years</label><br>
<input type="radio" name="years" id="years_4_Years" value="4 Years" />
<label for="years4_child">Will pay in 4 years</label><br>
<input type="radio" name="years" id="years_5_Years" value="5 Years" />
<label for="years5_child">Will pay in 5 years</label><br>

<label for="resu">You will pay $ monthly:</label>
<input type="text" name="resu" id="resu" /><br>

<button type="button" id = "calc">Calculate</button>
$(文档).ready(函数(){
$('input[name=“years”]”)。更改(函数(){
如果($('#years_3_years')是(':checked'){
警报(“36个月”);
}如果($('years'u 4'u years')是('checked')){
警报(“48个月”);
}如果($('years'u 5'u years')是('checked')){
警报(“60个月”);
}
};
);
}
);
汽车贷款金额:

首付款:
年息:
将在3年内付款
将在4年内付款
将在5年内付款
您将每月支付$
算计

多亏了@vihan1086,我才能够更改此代码并使上述代码正常工作。我在这里更新了我的JSFIDLE

有三个问题:

1: 名称不正确,应为:
input[type=radio]

2: 您需要切换到“onLoad”(可能就是我)

三: 你有大写错误

if($('#years_3_years').is(':checked')) { 
需要:

if($('#years_3_Years').is(':checked')) { 
3年
->
3年

要避免这种情况,请将事件设置为“单击”。如果将此
替换为:

if (/(?:(?:years_)\d+(?:_Years))/i.test('years_4_Years')) {
    alert(parseInt($(this).attr('value').trim(), 10) * 12 + 'Months');
}
这将自动生成警报

三个问题:

1: 名称不正确,应为:
input[type=radio]

2: 您需要切换到“onLoad”(可能就是我)

三: 你有大写错误

if($('#years_3_years').is(':checked')) { 
需要:

if($('#years_3_Years').is(':checked')) { 
3年
->
3年

要避免这种情况,请将事件设置为“单击”。如果将此
替换为:

if (/(?:(?:years_)\d+(?:_Years))/i.test('years_4_Years')) {
    alert(parseInt($(this).attr('value').trim(), 10) * 12 + 'Months');
}
这将自动生成警报

三个问题:

1: 名称不正确,应为:
input[type=radio]

2: 您需要切换到“onLoad”(可能就是我)

三: 你有大写错误

if($('#years_3_years').is(':checked')) { 
需要:

if($('#years_3_Years').is(':checked')) { 
3年
->
3年

要避免这种情况,请将事件设置为“单击”。如果将此
替换为:

if (/(?:(?:years_)\d+(?:_Years))/i.test('years_4_Years')) {
    alert(parseInt($(this).attr('value').trim(), 10) * 12 + 'Months');
}
这将自动生成警报

三个问题:

1: 名称不正确,应为:
input[type=radio]

2: 您需要切换到“onLoad”(可能就是我)

三: 你有大写错误

if($('#years_3_years').is(':checked')) { 
需要:

if($('#years_3_Years').is(':checked')) { 
3年
->
3年

要避免这种情况,请将事件设置为“单击”。如果将此
替换为:

if (/(?:(?:years_)\d+(?:_Years))/i.test('years_4_Years')) {
    alert(parseInt($(this).attr('value').trim(), 10) * 12 + 'Months');
}
这将自动生成警报

  • 选择器必须是类型而不是名称
  • 您可以使用$(this)而不是检查所有收音机按钮
  • 选择器必须是类型而不是名称
  • 您可以使用$(this)而不是检查所有收音机按钮
  • 选择器必须是类型而不是名称
  • 您可以使用$(this)而不是检查所有收音机按钮
  • 选择器必须是类型而不是名称
  • 您可以使用$(this)而不是检查所有收音机按钮

  • 因为它在JSfiddle中工作,而且解决方案很简单,所以对您的评价很高。我不知道为什么会有人投你反对票。可能是故意的可能是(@Zero。无论如何,谢谢你投你的票,因为它在JSFIDLE中工作,解决方法很简单。我不知道为什么会有人投你反对票。可能是故意的可能是((@Zero.ThanwayUp投票给你,因为它在JSFIDLE中起作用,解决方案很简单。我不知道为什么会有人反对你。可能是故意的可能是(@Zero.ThanwayUp投票给你,因为它在JSFIDLE中起作用,解决方案很简单。我不知道为什么会有人反对你。可能是故意的可能是((@Zero.无论如何谢谢有趣的回答。我现在正试图把这个东西放到coffeescript中,这样它就可以在rails上工作了,但它不在rails上工作。这可能是另一个问题的主题。coffeescript现在工作:
    code$(如果$('.'years\u3'years')。是(':选中)警报“36个月”如果$(“#years_4_years”)。如果$(“#years_5_years”)。是(“:checked”)警报“48个月”。是(“:checked”)警报“60个月”
    有趣的答案。我正在尝试将此内容导入coffeescript,以便它可以在rails上工作,但在rails上不工作。这可能是另一个问题的主题。coffeescript正在工作:
    code$(“输入[type='radio']”。在“单击”时,->if$('years'u 3'u years')。如果$('years'u 4'u years'),则('checked')警报'36个月'。如果$('years'u 5'u years'),则('checked')警报'48个月'。如果$('years'u 5'u years')。则('checked')。是('checked'))警报“60个月”
    有趣的答案。我正在尝试将此内容输入coffeescript,以便它可以在rails上工作,但在rails上不工作。这可能是另一个问题的主题。coffeescript现在工作:
    code$(“输入[type='radio'])。在“单击”时,如果$('years'u3'years')。是否('checked')如果$('years_4_years'),则警报'36个月'。如果$('years_5_years'),则警报'48个月'。如果$('years_5_years')。则警报'48个月'。'警报“60个月”
    有趣的答案。我正在尝试将此内容输入coffeescript,以便它可以在rails上工作,但在rails上不工作。这可能是另一个问题的主题。coffeescript现在工作:
    code$(“输入[type='radio'])。在“单击”时,如果$('years'u3'years')。是否('checked')如果$('years_4_years'),则警报'36个月'。如果$('years_5_years'),则警报'48个月'。如果$('years_5_years')。则警报'60个月'。