2017-06-20 56 views
0

這裏是我的HTML,其中有兩個單選按鈕。默認選中的按鈕是「租賃」按鈕。當您檢查單選按鈕時觸發一個動作

<input 
    id="quotation_request_payment_option_lease" 
    class="choose_payment_option" 
    name="quotation_request[payment_option]" 
    type="radio" 
    value="lease" 
    checked="checked"> 
    <input 
    id="quotation_request_payment_option_finance" 
    class="choose_payment_option" 
    name="quotation_request[payment_option]" 
    type="radio" 
    value="finance"> 

我想要做的是,當租賃按鈕被選中時,打印「租賃」到控制檯。當檢查「財務」時,打印「財務」到控制檯。 我試過各種東西都無濟於事。

這不起作用:

$(document).ready(function() { 
    $('input[type=radio[name='quotation_request[payment_option]']').change(function() { 
    if (this.value == 'lease') { 
     console.log("lease"); 
    } 
    else if (this.value == 'finance') { 
     console.log("finance"); 
    } 
}); 
}); 
+0

*「默認選中的按鈕是」租賃「按鈕。」* - 爲什麼在兩個按鈕上都選中了checked =「checked」? – nnnnnn

+0

這是一個錯字,我的意思是隻檢查=「檢查」的租約按鈕 – AliciaGuerra

回答

0

你可以寫選定值直接控制檯。爲您的CSS選擇器使用單引號和雙引號的組合。

$("input[type=radio][name='quotation_request[payment_option]'").change(function() { 
 
    console.log($(this).val()); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input id="quotation_request_payment_option_lease" class="choose_payment_option" name="quotation_request[payment_option]" type="radio" value="lease" checked="checked"> 
 
<input id="quotation_request_payment_option_finance" class="choose_payment_option" name="quotation_request[payment_option]" type="radio" value="finance" checked="checked">

+0

但這適用於頁面上的每個單選按鈕,而不僅僅是具有指定名稱的單選按鈕。 – nnnnnn

+0

@nnnnnn,然後使用'''和'''組合來指定您的CSS選擇器。您也可以使用'[name^= quotation_request]'而不是'[name ='quotation_request [payment_option]''。 – Alexander

1

$(document).ready(function() { 
 
    $(":radio[name='quotation_request[payment_option]']").change(function() { 
 
    if (this.value == 'lease') { 
 
     console.log("lease"); 
 
    } else if (this.value == 'finance') { 
 
     console.log("finance"); 
 
    } 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input id="quotation_request_payment_option_lease" class="choose_payment_option" name="quotation_request[payment_option]" type="radio" value="lease" checked="checked"/> 
 
<input id="quotation_request_payment_option_finance" class="choose_payment_option" name="quotation_request[payment_option]" type="radio" value="finance" />

  1. 像上面更改您的選擇。
  2. 您可以使用:radio選擇單選按鈕
+0

我試過那...不知道爲什麼它不起作用,如果它在你運行這段代碼時起作用 – AliciaGuerra

+0

@AliciaGuerra你可以檢查控制檯是否有錯誤嗎? – guradio

+0

有趣的是,我沒有在控制檯中看到錯誤,但它不打印租賃和融資 – AliciaGuerra

0

運行的代碼段在控制檯中看到

$('input[type=radio]').change(function() { 
 
console.log($(this).val()); 
 
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input 
 
    id="quotation_request_payment_option_lease" 
 
    class="choose_payment_option" 
 
    name="quotation_request[payment_option]" 
 
    type="radio" 
 
    value="lease" 
 
    checked="checked"> 
 
    <input 
 
    id="quotation_request_payment_option_finance" 
 
    class="choose_payment_option" 
 
    name="quotation_request[payment_option]" 
 
    type="radio" 
 
    value="finance" 
 
    checked="checked">

+0

但是,這將適用於頁面上的* all *單選按鈕,而不僅僅是具有'name =「quotation_request [payment_option]」'的兩個單選按鈕。 (即使OP當前沒有其他無線電,它們可能在將來也是如此)。 – nnnnnn

0

在HTML複選框更改添加以下觸發

onchange="myFunction(this)" 

,在我的功能

function myFunction(element) 
{ 
    //do stuff 
} 

這個怎麼樣

0

你的CSS選擇器是什麼原因造成的問題,請嘗試使用:

$("input[name='quotation_request[payment_option]']").change(function() { 
... 
} 
+0

這適用於頁面上的* all *單選按鈕,而不僅僅是具有'name =「quotation_request [payment_option]」'的兩個單選按鈕。 (即使OP目前沒有其他無線電,他們可能在將來) – nnnnnn

+0

嗨,我更新了我的答案,所以它現在只會影響單選按鈕的名稱「quotation_request [payment_option]」 – AKMorris

0

你的jQuery選擇是錯誤的。它應該是

$("input[type='radio'][name='quotation_request[payment_option]']").change(function(){  
    var value = $(this).val()  
    if(value == "lease") {  
     console.log(value);  
    } else if(value == "finance") {  
     console.log(value);  
    } 
}); 
+0

*「您的jquery對象」* - 我認爲你的意思是* selector *,而不是* object *。爲什麼你使用'$(this).attr(「value」)'而不是'this.value'? – nnnnnn

+0

沒錯。謝謝 – Toni

相關問題