在aspx页面中,我试图验证用户何时选中复选框,如果同一行的选择值具有某个值(默认值)以触发警报消息并取消选中该复选框。我想在javascript中实现这一点以避免回发,但如果可能的话没有jquery。
<asp:ListView ID="lstView_retrievedIPPhones" runat="server" OnDataBound="lstView_retrievedIPPhones_DataBound" OnItemDataBound="lstView_retrievedIPPhones_ItemDataBound">
<LayoutTemplate>
<table id="tbl1" runat="server" class="bordered">
<tr id="tr1" runat="server">
<th id="th1" runat="server"><asp:CheckBox ID="chkbox_checkAllRows" runat="server" OnClick="javascript:ToogleCheckAll(this.id)"/></th>
<th id="th9" runat="server">Sites</th>
<th id="th8" runat="server">Result</th>
</tr>
<tr id="ItemPlaceholder" runat="server">
</tr>
</table>
</LayoutTemplate>
<ItemTemplate>
<tr>
<td><asp:CheckBox ID="chkbox_toConfigure" runat="server" OnClick="javascript:btnclick()" /></td>
<td>
<asp:DropDownList ID="dpdown_Site" runat="server"></asp:DropDownList>
</td>
<td><asp:Image ID="imgResultLastOp" tooltip= "" runat="server" /></td>
</tr>
</ItemTemplate>
<EmptyDataTemplate></EmptyDataTemplate>
</asp:ListView>
在上面的代码中,当点击chkbox_toConfigure时,我想验证DropDownList selectedvalue不是默认值。
非常感谢您的帮助。
答案 0 :(得分:0)
如果您知道默认项目下拉列表的值(例如,此处为-1),则可以选中复选框并提醒用户从下拉列表中选择另一项:
在结束的ItemTemplate标记之前添加此代码:</ItemTemplate>
<script>
function CheckSelectedItem() {
var ddl = document.getElementById("<%# Container.FindControl("dpdown_Site").ClientID %>");
var ddlValue = ddl.options[ddl.selectedIndex].value;
if(ddlValue == "-1")
alert("Select another item!");
}
document.getElementById("<%# Container.FindControl("chkbox_toConfigure").ClientID %>").onclick = function() {
CheckSelectedItem();
return false;
}
</script>
答案 1 :(得分:0)
好吧,我最终做了以下代码:
<asp:CheckBox ID="chkbox_toConfigure" runat="server" OnClick='<%# "javascript:CheckSelectedItem(this.id," + ((ListViewDataItem)Container).FindControl("dpdown_Site").ClientID + ");" %>'/>
进入我的javascript部分:
function CheckSelectedItem(checkboxID, dropdown) {
var checkbox = document.getElementById(checkboxID);
var dropdownValue = dropdown.options[dropdown.selectedIndex].text;
if (dropdownValue == "<>") {
alert("Please select a valid value");
checkbox.checked = false;
}
}