2009-09-04 2 views
0

나는 복수 선택 <asp:listbox>과 버튼이 있습니다. > = 1 목록 상자의 항목을 선택하지 않으면 버튼을 비활성화하고 싶습니다. 이 클라이언트 쪽에서 어떻게해야합니까? 어떤 종류의 OnSelect 콜백을 찾을 수 없습니다. 오직 OnSelectedIndexChanged입니다. 인터넷 검색에서이 동작에 사용하기가 복잡해 보이며 불가능할 수도 있습니다.복수 선택 asp 목록 상자에서 OnSelect javascript hook에 해당하는

답변

2

사용 OnChange 이벤트 및 계산 선택한 항목 :

<script>function enableButton(opt) { 
     var selected = new Array(); 
     var count = 0; 
     for (var intLoop=0; intLoop < opt.length; intLoop++) { 
     if (opt[intLoop].selected) { 
      count++; 
     } 
     } 
     if (count >= 1) 
     { 
     // disable button 
     } 
    } 
</script> 

<select id="list" style="font-size: 11px;" 
    onChange="enableButton(this.options);" MULTIPLE SIZE="5"> 
    <option value="0">Select...</option> 
    <option value="1">1</option> 
    <option value="2">2</option> 
</select> 

편집 : ASP : 위의 코드로 선택 HTML로 렌더링옵니다. 따라서 스크립트를 onchange 속성에 추가하면됩니다.

myListBox.Attributes.Add("onchange", "enableButton(this.options);"); 
+0

선언적인 asp : listbox 구문을 사용하고 있습니다. ASP에서 인식하지 못하는 추가 속성이 렌더링 된 html로 넘어가나요? –

+0

거의 모든 클라이언트 이벤트가 서버 측 이벤트를 엉망으로 만들고 있습니다 :) 그래서 OnChange를 참조하는 OnClientChange와 같은 일부 구성 요소에 일부 속성을 추가했습니다. – Canavar

1

선택 상자의 OnClick 또는 OnChange는 "OnSelect"와 동일한 것입니다.

+0

나는 그 속성이 존재하지 않는다고 생각한다. http://msdn.microsoft.com/en-us/library/z4d7ktzs.aspx –

+0

글쎄, 그들은 HTML로 존재한다. 결국 사용자가 보게 될 것이다. . – Havenard

2

이렇게하면 jQuery를 사용하는 것이 그리 어렵지 않을 것입니다. 뭔가 따라 -

$("select#myListBox").change(function() { 
    if ($("select#myListBox option:selected").length >= 1) 
     $("input#myButton").attr("disabled", "true"); 
} 

모든 우박 강력한 jQuery.

관련 문제