javascript
  • jquery
  • jquery-mobile
  • cordova
  • 2013-10-10 42 views 2 likes 
    2

    HTML代碼:如何使用jquery一次只選擇一個單選按鈕,具有不同的名稱?

    <div id="localPropList"></div> 
    <div id="assignedPropList"> </div> 
    

    js代碼:

    function getLocalProposals() 
         { // filling these radio buttons dynamically 
    
          var htmlStringLocalPro = '<fieldset id="local_proposal_id_div" name ="radioGroup" data-role="controlgroup">'; 
          for (var k = 0; k < result.rows.length; k++) { 
           var localProposal = result.rows.item(k); 
          if(!(jQuery.inArray(localProposal.id, arrForQueuePropId) >=0)) 
         {var fieldId = 'localPro' + k; 
          htmlStringLocalPro += '<input group="1" type="radio" name="local_proposal_id" id="' + fieldId + '" value="' + localProposal.enquiry_no + ',' + localProposal.id + '"/>' 
                  + '<label for="' + fieldId + '" data-iconpos="right">' + localProposal.enquiry_no+'-'+localProposal.caller_name+'</label>'; 
          } 
        htmlStringLocalPro += '</fieldset>'; 
    } 
    
    
        function getAssignedproposals() 
         { 
        var htmlString = '<fieldset id="assigned_proposal_id_div" name ="radioGroup" data-role="controlgroup">'; 
        for (var i = 0;i < obj.Proposal.length; i++) { 
          proposalIds += obj.Proposal[i].id + ','; 
         if(!(jQuery.inArray(obj.Proposal[i].id, arrForQueuePropId) >=0)){ 
            var fieldId = 'ap' + i; 
        htmlString += '<input group="1" type="radio" name="assigned_proposal_id" id="' + fieldId + '" value="' + obj.Proposal[i].enquiry_no + ',' + obj.Proposal[i].id + '"/><label for="' + fieldId + '" data-iconpos="right">' + obj.Proposal[i].enquiry_no + '-' + obj.Proposal[i].caller_name + '-' + obj.Proposal[i].post_code + '</label>'; 
             // htmlString += '<input type="radio" name="local_proposal_id" id="' + fieldId + '" value="' + obj.Proposal[i].enquiry_no + ',' + obj.Proposal[i].id + '"/><label for="' + fieldId + '" data-iconpos="right">' + obj.Proposal[i].enquiry_no + '-' + obj.Proposal[i].caller_name + '-' + obj.Proposal[i].post_code + '</label>'; 
             } 
            } 
        htmlString += '</fieldset>';} 
    
        $("input:radio[name=local_proposal_id]:checked").each(function() { 
         var prop = $(this).val().split(','); 
    }); 
        $("input:radio[name=queue_proposal_id]:checked").each(function() { 
          var prop = $(this).val().split(','); 
    }); 
    

    我需要一次如果具有名稱= 「assigned_proposal_id」 單選按鈕來僅選擇一個單選按鈕被選中,那麼它不應該允許選擇名稱=「local_proposal_id」任何單選按鈕「我不能指定id不同我需要做的選擇的名稱的基礎上,我不能指定相同的名稱分離組以及 請告訴我什麼是該解決方案

    +0

    它不符合我的要求我不想要禁用我想要的:當我選擇localPropid RADIO,然後如果從queue_proposal_id檢測到其他無線電,則應該取消選中它,如果選中了queue_proposal_id,則應該取消禁用所有其他單選按鈕 – nida

    回答

    2

    檢查/ jQuery中移動取消選中,你需要使用.prop來選中或取消選中,然後調用.checkboxradio('refresh')

    Demo

    $(document).on('pageinit', function() { 
        $(document).on('change', '[type=radio]', function (e) { 
    
        // Uncheck radio buttons in #group1 and #group2 
        $('#group1 [type=radio]:checked, #group2 [type=radio]:checked').prop('checked', false).checkboxradio('refresh'); 
        // "OR" to select all radio buttons in DOM 
        $('[type=radio]:checked').prop('checked', false).checkboxradio('refresh'); 
    
        // Check clicked radio 
        $(this).prop('checked', true).checkboxradio('refresh'); 
        }); 
    }); 
    
    +0

    我有任何#group2什麼是group2請解釋,你的小提琴代碼和你在這裏提到的代碼是不同的 – nida

    +0

    @ user1668447我的演示是一般的,我的答案給出了兩個選項。如果你想,使用演示中的代碼。 – Omar

    +0

    演示上的代碼工作正常,謝謝很多,但我已經做了一個代碼更改這裏是更新的小提琴而不是''pageinit''我用$(document).on('pageshow',function()http ://jsfiddle.net/fJG96/ – nida

    0

    嘗試以下

    if($('input [name="assigned_proposal_id"]').is(':checked')){ 
        $('input [name="local_proposal_id"]').attr('disabled' , true) 
    } 
    
    0
    $('input [name="assigned_proposal_id"]').click(function(){ 
    

    if($('input [name="assigned_proposal_id"]').is(':checked')){ $('input [name="local_proposal_id"]').attr('disabled' , true) }

    });

    它會像什麼侯賽因告訴

    0

    這裏A FIDDLE你的目的。它將取消選中所有的單選按鈕,然後檢查我們點擊的那個按鈕。

    HTML:

    <div id="localPropList"> 
    <input name="assigned_proposal_id" type="radio" value="value1-1" />value1-1 
    <input name="assigned_proposal_id" type="radio" value="value1-2" />value1-2 
    <input name="assigned_proposal_id" type="radio" value="value1-3" />value1-3 
    </div> 
    <br/> 
    <div id="assignedPropList"> 
    <input name="local_proposal_id" type="radio" value="value2-1" />value2-1 
    <input name="local_proposal_id" type="radio" value="value2-2" />value2-2 
    <input name="local_proposal_id" type="radio" value="value2-3" />value2-3 
    </div> 
    div selected : <span></span> 
    

    JQUERY:

    $('#localPropList input[name="assigned_proposal_id"], #assignedPropList input[name="local_proposal_id"]').change(function(){ 
        $('#localPropList input[name="assigned_proposal_id"], #assignedPropList input[name="local_proposal_id"]').prop('checked', false); 
        $(this).prop('checked', true); 
        $('span').html($(this).val()); 
    }); 
    
    +0

    它無法工作的情況下動態id的radioButtons和它不履行我期望的結果對不起 – nida

    0
     Disable Syntax:  
        $('input[name="name_here"]').attr('disabled', 'disabled'); 
    
    Don't go for the hardest thing 
    Hussein Nazzal is correct but space matters  
    between  input and '[' bracket 
    
    if($('input[name="assigned_proposal_id"]:checked').val() != '') 
    { 
    $('input[name="local_proposal_id"]:radio').attr('disabled', 'disabled'); 
    } 
    

    Demo

    +0

    我想要禁用殘留無線電對不起,這不是正確的答案 – nida

    0

    這個工作對我來說,考慮到根據選擇這種改變將適用於所有單選按鈕與同一類的文件中,在這種情況下類=「chartIndex」:

    $(".chartIndex").change(function() {   
        $('[type=radio]:checked').prop('checked', false); 
        $(this).prop('checked', 'checked');   
    }); 
    

    希望這可以幫助別人。問候。

    相關問題