【发布时间】:2015-02-12 19:26:23
【问题描述】:
我有一个 asp.net 应用程序。当所选索引更改为下拉列表中的特定值(“已取消”)时,我将显示确认弹出警报。
<asp:DropDownList ID="ddlStatus" runat="server" CssClass="selectstyle" DataTextField="Name" DataValueField="ID" onchange="GetSelectedItem(this)" />
下拉列表有 4 个值 - “待处理”、“已修复”、“已响应”和“已取消”
因此,当用户选择“已取消”值时,我会显示一个确认弹出框。根据确认框中的用户选择,我正在修改页面的 UI 并更新更改(提交按钮有效)。
function GetSelectedItem(x) {
if (x.value == 4) {
if (confirm("Are you sure you want to cancel support ticket ?") == true) {
document.getElementById("lbl_CancellationReason").style.display = 'block';
document.getElementById("tbx_CancellationReason").style.display = 'block';
}
}
else {
document.getElementById("lbl_CancellationReason").style.display = 'none';
document.getElementById("tbx_CancellationReason").style.display = 'none';
//document.getElementById('<%= btnSubmit.ClientID %>').click();
$('btnSubmit').trigger('click');
}
}
但是当用户从下拉列表中选择任何其他值(“待处理”、“已修复”、“已响应”)或在页面中进行任何其他更改时,我的提交按钮(更新)不起作用。它没有给出任何错误,但我的页面上没有任何反应。
这是我的取消原因和更新按钮,
<td class="label" align="right">
<div id="lbl_CancellationReason" runat="server" style="display:none">
Cancellation Reason :
</div>
</td>
<td>
<div id="tbx_CancellationReason" runat="server" style="display:none">
<asp:TextBox ID="tbxCancellationReason" runat="server" CssClass="selectstyle" TextMode="MultiLine" Width="400" Height="50"> </asp:TextBox>
<asp:RequiredFieldValidator ErrorMessage="Please enter cancellation reason." ValidationGroup="CancellationReason" ControlToValidate="tbxCancellationReason" runat="server" />
</div>
</td>
<asp:Button ID="btnSubmit" runat="server" Text="Update Details" Style="display: inline; margin-left: 15px;" OnClick="btnUpdate_Click" CssClass="selectstyle" UseSubmitBehavior="false" ValidationGroup="CancellationReason"/>
不知道该怎么办。
【问题讨论】:
-
当你改变 DropDownList 你调用 onchange="GetSelectedItem(this) 但没有调用按钮。当你说“提交按钮不起作用”时是什么意思?
-
当调用 GetSelectedItem(this) 时,我正在使标签和文本框可见,用户在文本框中输入内容,更新信息,然后按钮在那时起作用。但是当该值不是“Cancelled”时,GetSelectedItem(this) 会进入 else 部分。之后提交按钮不会被触发。
-
当用户点击它时它不会被触发?如果为真,您需要检查 CancellationReason - 也许它会检查并且不允许提交表单。
-
没有。我还添加了以下代码, //document.getElementById('').click(); $('btnSubmit').trigger('click');但是这两个选项都不会触发点击事件。
-
请修改您的帖子并添加触发器代码('click');目前还不清楚你在哪里称呼它。也可以检查 CancellationReason 或分享它,因为这可能是问题的原因。
标签: javascript c# jquery html asp.net