【问题标题】:ASP.Net submit button click event not working after dropdown list index change in JavaScriptJavaScript 中的下拉列表索引更改后,ASP.Net 提交按钮单击事件不起作用
【发布时间】: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


【解决方案1】:

按 id 使用选择器,而不是按名称

$('#btnSubmit').trigger('click');

--or--

$('#btnSubmit').click();

jquery selector not working, why?

附言

此外,您检查 ValidationGroup="CancellationReason" 甚至文本框不可见,表单无效并且您无法提交。为了解决它,

【讨论】:

  • 你是否包含了 jquery?
  • 是的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-19
相关资源
最近更新 更多