2016-08-04 3 views
-2

검색 할 때 몇 개의 오래된/어간 글을 볼 수 있습니다. 그러나 어떤 이유로 든 내 프로젝트에서 작동하는 코드 예제를 얻을 수 없습니다.체크 박스를 사용하여 버튼을 활성화하십시오.

체크 박스 컨트롤을 사용하여 제출 버튼을 활성화/비활성화하여 사용자가 등록하기 전에 용어를 사용하는 것에 동의해야합니다.

SQL Server 백엔드, asp.net 및 C# 사용. 자바 스크립트를 사용하여이 기능을 활성화/비활성화하는 것을 선호하지만 작동하는 모든 것을 열어보십시오.

이 시점에서 나는 실제 코드에 대한 모든 시도를 버렸고 누군가가 작동 할 수있는 무언가를 제시 할 수 있기를 바라고 있습니다. (따라서 왜 아래의 자바 스크립트가 없는지).

asp.net 컨트롤 :

<div> 
<asp:CheckBox ID="checkbox1" runat="server" Text="I Agree" Checked="false" /> 
    </div> 
    <div class="form-group"> 
     <div class="col-md-offset-2 col-md-10"> 
      <asp:Button runat="server" ID="btnRegister" OnClick="CreateUser_Click" Text="Register" CssClass="btn btn-default" Enabled="false"/> 
     </div> 
    </div> 

업데이트 2016년 8월 5일 - 내가 중복으로 여러 사람에 의해 표시되는 항목의 코드를 시도, 그것은 작동하지 않습니다. 제출 된 질문에서 확인란은 asp.net이 아닌 HTML 항목이며 버튼은 전혀 참조되지 않습니다. 해당 코드를 맞게 변경하려고 시도했지만 확인란을 선택/선택 취소 할 때 단추로 아무 것도 나타나지 않습니다.

원하는 기능을 수행하는 자바 스크립트 아래에 사용할 수 :

$(function() { 
    var $btn = $(":submit[id$=btnRegister]"); 
    var $chk = $(":input:CheckBox[id$=checkbox1]"); 
    // check on page load 
    checkChecked($chk); 
    $chk.click(function() { 
     checkChecked($chk); 
    }); 
    function checkChecked(chkBox) { 
     if ($chk.is(':checked')) { 
      $btn.removeAttr('disabled'); 
     } 
     else { 
      $btn.attr('disabled', 'disabled') 
     } 
    } 
}); 

+0

그래서 그들은 작동하지 않았다, 당신은 왜 점점 많은 중복 가까운 투표 할 것이다 : –

+0

의견을 추가했습니다. 내 프로젝트에서 중복이 작동하지 않습니다. –

답변

1

는 자바 스크립트 아래를 사용 . 당신의 질문을 편집하고 그 정보를 제공하십시오.
0

내가 UpdatePanel 컨트롤을 모두 컨트롤을 감싸고 UpdateMode=Conditional을 설정하고 추가하는 것입니다 추천 할 것입니다 간단한 방법 Checkbox의 CheckedChanged 이벤트에 대해서는 Trigger입니다. 또한 확인란에 AutoPostback=True을 설정하십시오.

<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional"> 
<Triggers> 
<asp:AsyncPostBackTrigger ControlID="checkbox1" EventName="CheckedChanged " /> 
</Triggers> 
     <ContentTemplate> 
<div> 
<asp:CheckBox ID="checkbox1" runat="server" OnCheckedChanged="Check_Clicked" AutoPostback = "True" Text="I Agree" Checked="false" /> 
</div> 
<div class="form-group"> 
    <div class="col-md-offset-2 col-md-10"> 
     <asp:Button runat="server" ID="btnRegister" OnClick="CreateUser_Click" Text="Register" CssClass="btn btn-default" Enabled="false"/> 
    </div> 
</div> 
</ContentTemplate> 
</asp:UpdatePanel> 

백엔드에 OnCheckedChanged의 핸들러 메소드는이 같은 것이다 : 나는 희망

btnRegister.Enabled = checkbox1.Checked 

이 도움을, 나는 나 자신을 분명히했습니다 바랍니다. 당신이 검토 한 것을 이전 게시물을 지정하지했기 때문에,

<script type="text/javascript" > $(function() { var $btn = $(":submit[id$=btnRegister]"); 
var $chk = $(":input:CheckBox[id$=checkbox1]"); 
// check on page load checkChecked($chk); $chk.click(function() { checkChecked($chk); }); 
function checkChecked(chkBox) { if ($chk.is(':checked')) { $btn.removeAttr('disabled'); } 
else { $btn.attr('disabled', 'disabled') } } }); 
</script> 
+0

아래 자바 스크립트를 사용했습니다.

0
<div> 
    <asp:CheckBox ID="CheckBox1" runat="server" AutoPostBack="True" OnCheckedChanged="CheckBox1_CheckedChanged" /><br /> 
    <asp:Button ID="Button1" runat="server" Text="Button" /> 
</div> 

protected void Page_Load(object sender, EventArgs e) 
    { 
     Button1.Enabled = false; 
    } 

protected void CheckBox1_CheckedChanged(object sender, EventArgs e) 
    { 
     Button1.Enabled = CheckBox1.Checked; 
    } 
+0

이 솔루션은 단추를 사용 안함에서 사용 가능으로 변경하고 요청에 따라 다시 변경하지만 화면의 포스트 백과 완전 새로 고침은 최적이 아닙니다. 이 응용 프로그램의 사용자는 포스트 백에서 오류가 발생했다고 생각할 수있는 유형입니다. 포스트 백의 부작용은 페이지가 화면 상단으로 돌아가서 사용자가 다시 아래로 스크롤하여 등록 버튼을 눌러야하고 비밀번호 글 상자를 다시 입력해야한다는 것입니다 (이 글에서는이 글에서 언급하지 않음). –

관련 문제