html
  • forms
  • radio-button
  • 2010-08-31 60 views 54 likes 
    54
    <label>Do you want to accept American Express?</label> 
    Yes 
    <input id="amex" style="width: 20px;" type='radio' name='Contact0_AmericanExpress' value='1' /> 
    No 
    <input style="width: 20px;" type='radio' name='Contact0_AmericanExpress' class='check' value='0' checked="checked" /> 
    

    單選按鈕在默認情況下不會顯示爲checked。我開始沒有默認的選擇做一些非常簡單的js驗證,它不工作。所以我選擇使用默認值,直到我發現並發現了一些奇怪的事情。單選按鈕「選中」屬性不起作用

    該標記是有效的,我試過FF,Safari和Chrome。什麼都沒有

    我認爲這是與jQuery庫衝突,因爲當我刪除調用腳本時問題消失。 http://jsfiddle.net/fY4F9/

    沒有被默認選中:

    +2

    這裏你的問題到底是什麼?我將您的HTML複製到一個空文件中,並選中「否」按鈕。這是IE8,FF和Opera。 – 2010-08-31 07:06:25

    +0

    看到下面的答案(類型的解決方法雖然) – Manglesh 2013-09-16 08:18:16

    回答

    3

    到剛纔複製的代碼。你有沒有運行的JavaScript會影響收音機?

    +0

    我知道,這是瘋了吧?沒有,我沒有任何腳本將地址單選按鈕。只需對文本字段和滑塊腳本進行驗證即可。我正在通過它現在只是爲了確保雖然.. – Jordan 2010-08-31 07:19:38

    +0

    找到罪魁禍首,但我不知道究竟是什麼在該腳本造成的問題 – Jordan 2010-08-31 07:29:57

    +0

    也嘗試在清除緩存的瀏覽器。以防萬一 – 2010-08-31 07:29:57

    -2

    您使用非標準的XHTML代碼

    (值應該用雙引號,而不是單引號被陷害)試試這個:

    <form> 
        <label>Do you want to accept American Express?</label> 
        Yes<input id="amex" style="width: 20px;" type="radio" name="Contact0_AmericanExpress" /> 
        No<input style="width: 20px;" type="radio" name="Contact0_AmericanExpress" class="check" checked="checked" /> 
    </form> 
    
    +0

    衝突,這是根據約旦的文檔類型。不管它是否仍然在xhtml文檔類型中工作;但它不會驗證。 – 2010-08-31 07:10:57

    +0

    我改變它只是踢,但我知道這不是問題。驗證是很好的,但它不會解決這個問題。 – Jordan 2010-08-31 07:16:28

    +5

    @CFP實際上,符合標準的XHTML(過渡,嚴格,HTML5等)允許使用雙引號或單引號。請參閱:http://dev.w3.org/html5/html-author/#double-quote-attr – matthewpavkov 2011-11-18 14:25:27

    0

    你的代碼是正確的,嘗試調試您的JQuery腳本來找到問題! 如果你使用FF,你可以安裝一個擴展來調試JS(和JQuery),它被稱爲FireBug。

    65

    如果您使用checked屬性具有多個相同的名稱,它將採用頁面上最後一次選中的廣播。

    <form> 
    <label>Do you want to accept American Express?</label> 
    Yes<input id="amex" style="width: 20px;" type="radio" name="Contact0_AmericanExpress" /> 
    maybe<input id="amex" style="width: 20px;" type="radio" name="Contact0_AmericanExpress" checked="checked" /> 
    No<input style="width: 20px;" type="radio" name="Contact0_AmericanExpress" class="check" checked="checked" /> 
    </form> 
    
    +3

    它實際上會檢查'

    '中的最後一個電臺。只要它們屬於不同的形式,您可以有多個具有相同名稱的已檢查輸入。 – 2014-05-20 16:52:21

    +0

    這是我的情況。該頁面有兩個div,每次只顯示其中一個div。兩人都有一個同名的單選按鈕組。在我的例子中,兩者都具有checked屬性,但瀏覽器似乎選擇隱藏div(後者在HTML中)作爲用於顯示所選單選按鈕的一個。 – 2016-12-07 18:50:11

    +0

    @BrunoLange這是我的問題。我在頁面上呈現了同一個HTML的多個實例 - 這個實例由兩個單選按鈕組成,這兩個單選按鈕不包含在表單標籤中,其中一個單選按鈕具有'checked'屬性。我必須將它們包裝在每個實例的''標記中,以檢查默認單選按鈕。 – 2017-05-22 15:48:42

    5

    嘿,我也面臨着類似的問題,在Ajax生成的頁面。我使用了在Webdeveloper FF撐着生成的源代碼,並在形式檢查了所有的投入和發現,有一個內部的另一個複選框隱藏div(顯示:無)與相同的ID,一旦我改變了第二複選框的ID,它開始工作..你也可以嘗試..並讓我知道結果..乾杯

    1

    嗨我想如果你爲第二個輸入添加id屬性並賦予它一個唯一的id值它將起作用

    <label>Do you want to accept American Express?</label> 
    Yes<input id="amex" style="width: 20px;" type='radio' name='Contact0_AmericanExpress' value='1'/> 
    No<input style="width: 20px;" id="amex0" type='radio' name='Contact0_AmericanExpress' class='check' value='0' checked="checked"/> 
    
    11

    最終JavaScript解決這個惱人的問題 -

    只需將jQuery命令包裝在setTimeout。間隔可以非常小,我使用10毫秒,它似乎工作得很好。延遲非常小,對於最終用戶來說幾乎不可檢測。

    setTimeout(function(){ 
        $("#radio-element").attr('checked','checked'); 
    },10); 
    

    這也將與

    • $("#radio-element").trigger('click');
    • $("#radio-element").attr('checked',true);
    • $("#radio-element").attr('checked',ANYTHING_THAT_IS_NOT_FALSE);

    哈克工作... ...哈克哈克... ...哈克是我知道......因此這是一種解決方法....

    +0

    看起來你在第一個例子中的所有#radio元素上都設置了'Checked'屬性。 – etoxin 2013-01-09 03:58:05

    +0

    等我壞。沒有讀過OP的問題。 – etoxin 2013-01-09 03:59:10

    +0

    This works too'$(input).prop('checked',true);' – Atif 2015-06-27 23:47:05

    27

    這可能是它:

    Is there a bug with radio buttons in jQuery 1.9.1?

    總之:不要使用ATTR(),但道具()檢查單選按鈕。上帝我討厭JS ...

    +5

    這可能沒有回答OP的問題,但它回答了我的 – 2014-03-25 23:16:34

    +8

    :-(你討厭JS – Daan 2015-10-26 14:24:55

    +0

    昨天剛剛發現了同樣的問題 – 2016-03-08 14:14:08

    -1

    只是增加檢查屬性,你想擁有默認選中

    試試這個每個無線電:

    <input style="width: 20px;" type="radio" name="Contact0_AmericanExpress" class="check" checked/> 
    
    0

    這裏是經過房產詳細解釋VS屬性enter link description here

    ,這可能有幫助的人,這是另一種方式來獲取選定的單選按鈕值

    var accepted = $('input[name="Contact0_AmericanExpress"]:checked').val(); 
    

    此處設置ID爲單選按鈕是可選的。

    編程快樂!....

    6

    無線輸入必須是「檢查」工作表單內。

    相關問題