2016-06-10 124 views
0

基本上,我试图添加我的Radio Buttons脚本文件,当用户单击另一个时,将删除所有选定的按钮。基本上它会阻止用户选择超过1 Radio Button。但是,我不能。这是我的Java脚本代码:无法访问Java脚本文件夹

$().ready(function() { 
    var $allAccountSelectionRadios = $('.AccountSelectionRadio > input:radio'); 
    $allAccountSelectionRadios.click(function() { 
     $allAccountSelectionRadios.not(this).each(function() { 
      this.checked = false; 

     }); 
    }); 
}); 

,这里是我的asp.net代码:

<head runat="server"> 
<title>Lab 11 - Exception Handling and Error Logging</title> 
<script src="Scripts/jquery-3.0.0.js"></script> 
<script src="script/AccountPageScript.js" type="text/javascript"></script> 
</head> 

<body> 
    <form id="form1" runat="server"> 
     <div id="Div1" runat="server"> 
      <asp:Panel ID="AccountPanel" runat="server" GroupingText="Account Details" Visible="true"> 
       <asp:Repeater ID="AccountInfoRepeater" runat="server" Visible="true"> 
        <HeaderTemplate> 
          <table> 
          <thead> 
           <asp:TableHeaderCell ColumnSpan="2" runat="server" HorizontalAlign="Left">Account Id</asp:TableHeaderCell> 
           <asp:TableHeaderCell runat="server" HorizontalAlign="Left">Account Type</asp:TableHeaderCell> 
           <asp:TableHeaderCell runat="server" HorizontalAlign="Left">Balance</asp:TableHeaderCell> 
           <asp:TableHeaderCell runat="server" HorizontalAlign="Left">Currency</asp:TableHeaderCell> 
          </thead> 
        </HeaderTemplate> 
        <ItemTemplate> 
         <tr> 
          <td> 
           <asp:RadioButton ID="AccountSelectionRadioButton" runat="server" /> 
          </td> 
          <td> 
           <asp:Label ID="AccountIDLabel" runat="server" Text='<%# Eval("Id") %>' /> 
          </td> 
          <td> 
           <asp:Label ID="AccountTypeLabel" runat="server" Text='<%# Eval("Type") %>' /> 
          </td> 
          <td> 
           <asp:Label ID="AmountLabel" runat="server" Text='<%# Eval("Amount") %>' /> 
          </td> 
          <td> 
           <asp:Label ID="CurrencyLabel" runat="server" Text='<%# Eval("Currency") %>' /> 
          </td> 
         </tr> 
        </ItemTemplate> 
        <FooterTemplate> 
         </table> 
        </FooterTemplate> 
       </asp:Repeater> 
       <div></div> 
       <asp:Label ID="EnterAmountLabel" runat="server" Text="Enter Amount: " /> 
       <asp:TextBox ID="WithdrawalAmountTextBox" runat="server" /> 
       <asp:Button ID="SubmitButton" runat="server" Text="Submit" /> 
       <div></div> 
       <asp:CustomValidator ID="CustomValidator" runat="server" ErrorMessage="You have to select at least one account " OnServerValidate="ValidateAccountIdSelection" Display="None" /> 
       <asp:RequiredFieldValidator ID="RequiredFieldValidator" runat="server" ErrorMessage="You have to enter a double value" ControlToValidate="WithdrawalAmountTextBox" Display="None" /> 
       <asp:CompareValidator ID="CompareValidator" runat="server" ErrorMessage="You have to enter a double value " ControlToValidate="WithdrawalAmountTextBox" Type="Double" Operator="DataTypeCheck" Display="None" /> 
       <div></div> 
       <asp:ValidationSummary ID="ValidationSummary" runat="server" /> 
      </asp:Panel> 
      <asp:Panel ID="ErrorPanel" runat="server" Visible="false"> 
       <asp:Label ID="SimpleBankErrorMessage" runat="server" /> 
      </asp:Panel> 
     </div> 
    </form> 
</body> 

你有什么想法,是什么原因导致这个问题,或者你有任何链接,回答了这个题。

非常感谢你们,祝你有个美好的一天!

编辑:

这里是HTML生成的代码:

<script type="text/javascript"> 
//<![CDATA[ 
var theForm = document.forms['form1']; 
if (!theForm) { 
    theForm = document.form1; 
} 
function __doPostBack(eventTarget, eventArgument) { 
    if (!theForm.onsubmit || (theForm.onsubmit() != false)) { 
     theForm.__EVENTTARGET.value = eventTarget; 
     theForm.__EVENTARGUMENT.value = eventArgument; 
     theForm.submit(); 
    } 
} 
//]]> 
</script> 


<script src="/WebResource.axd?d=pynGkmcFUV13He1Qd6_TZDo7pde1PlC3CEuIL05u8Q1xzcqV3PrxQf6BV-yOWDawu00wwYzaAVDc3H21VtA9QA2&amp;t=635588690558757176" type="text/javascript"> </script> 


<script src="/WebResource.axd?d=x2nkrMJGXkMELz33nwnakICvsGmK5SdM9dk67DGoGLRbDkaJ4AV4SDiDiYXmeJzOvX1FlDmSjt4uSO7vYhQSbfgakaHhNd17j5pdlKG7J5s1&amp;t=635588690558757176" type="text/javascript"></script> 
<script type="text/javascript"> 
//<![CDATA[ 
function WebForm_OnSubmit() { 
if (typeof(ValidatorOnSubmit) == "function" && ValidatorOnSubmit() == false) return false; 
return true; 
    } 
//]]> 
</script> 

回答

1

你为什么不这样做的服务器端???与C#。 所有的单选按钮都是runat =“server”,所以你可能会有事件监听器通过它们并进行检查。

$().ready(function() { 
var $allAccountSelectionRadios = $('.AccountSelectionRadio > input:radio'); 
$allAccountSelectionRadios.click(function() { 
    $allAccountSelectionRadios.not(this).each(function() { 
     this.attr('checked',false); 
    }); 
}); 

this.attr('checked',false);将是我做到这一点的方式。 但不记得它是否能与ASP.Net事件监听器一起使用。

+0

我改变了我的与你的代码,但它没有帮助。我很确定代码是正确的(它在作业中给出)。是的,也许你是对的,但这是作业,所以我们需要这样做 –

+0

你可以分享生成的HTML :)然后我可以看看它:) – Kiksen

+0

是的当然,我会编辑我的问题: ) –

1

你需要让你的单选按钮做设置name属性相同的值所有无线buttons.To实现这一目标与此更换你的脚本的相互exclusive.One方式:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js"></script> 
<script type="text/javascript"> 
    $(function() { 
     $('input:radio').each(function() { 
      $(this).attr('name', 'AccountSelectionRadioButtons') 
     }); 
    }); 
</script> 
+0

感谢它的工作,但这一次,当我按下我的提交按钮时,我的“验证器”显示“您必须至少选择一个帐户。”。我的意思是当我在另一个选择一个“单选按钮”时,视觉上它工作并且只显示一个“单选按钮”被选中。但是,这次没有选择它们。 –

+0

其实我的验证器逻辑绝对是这样的。我正在逐一检查每一个“单选按钮”,然后如果其中一个被选中,则为 'isValid' = true。 –