输入文本后的jQuery警报消息

输入文本后的jQuery警报消息,jquery,stored-procedures,asp-classic,Jquery,Stored Procedures,Asp Classic,txtTransactionDate和txtOperatorNumber是SQL过程中的参数,允许cboaSignedSite下拉菜单自动填充。有时,根据所选参数,cboAssignedSite没有值,我想向用户显示一条有意义的消息,指出这一点 到目前为止,我试图在其中一个文本字段的更改事件中添加一个警报。问题在于,该警报似乎发生在表单提交之前,因此无论下拉列表中是否有值,在发出警报时它总是显示为空 我是jQuery新手,所以这可能不是最好的方法。目标是提醒用户在选择文本字段中的参数后,下拉列表

txtTransactionDate
txtOperatorNumber
是SQL过程中的参数,允许
cboaSignedSite
下拉菜单自动填充。有时,根据所选参数,
cboAssignedSite
没有值,我想向用户显示一条有意义的消息,指出这一点

到目前为止,我试图在其中一个文本字段的更改事件中添加一个警报。问题在于,该警报似乎发生在表单提交之前,因此无论下拉列表中是否有值,在发出警报时它总是显示为空

我是jQuery新手,所以这可能不是最好的方法。目标是提醒用户在选择文本字段中的参数后,下拉列表为空

提前谢谢

记录集:

Set RS=CN.Execute(“spSelect@vOperatorNumber=”&Request.Form(“txtOperatorNumber”)&“,@vTransDate=”&Request.Form(“txtTransactionDate”)&“)
Jquery:

$(document).ready(function() 
    {
        $('#txtTransactionDate').change
            (
                 function() 
                 {
                    $('#frmRequest').submit();
                 }      
            );

            $('#txtOperatorNumber').change
            (
                 function() 
                 {
                    $('#frmRequest').submit();
                    alert($('#cboAssignedSite option:selected').text());
                }
            );
    }); 
HTML/ASP:


除非您需要/想要阻止用户提交表单,否则我将执行以下操作: 如果下拉列表为空,则在html中添加消息div并在加载时显示:

  <script>
    $(document).ready(function () {
      if ($('#cboAssignedSite').val() === null) {
        $('#message').show();
      }
    });
  </script>

<form name="frmRequest" id="frmRequest" method="post">
    <div id="message" style="border:1px solid red;display:none">No site available</div>
    <input name="txtTransactionDate" type="text" id="txtTransactionDate" value="<%=vTransDate%>"/>
    <input name="txtOperatorNumber" type="text" id="txtOperatorNumber" value="<%=vOperatorNumber%>"/>
    <select name="cboAssignedSite" id="cboAssignedSite">
        <%If Not RS.EOF Then
            Do While Not RS.EOF%>
                <option value='<%= RS("assignedSite")%>'
                    <%If Request.Form("cboAssignedSite") = RS("assignedSite") Then Response.Write("selected")%>>
                    <%= RS("location")%></option>
                <%RS.MoveNext
            Loop
        End If%>
    </select>
</form>

$(文档).ready(函数(){
if($('#cboAssignedSite').val()==null){
$(“#消息”).show();
}
});
没有可用的站点

您可以在不使用jQuery的情况下执行此操作:

<%If RS.EOF and Request.ServerVariables("REQUEST_METHOD") = "POST" Then %>
    <div id="message" style="border:1px solid red">No site available</div>
<%end if%>

<form name="frmRequest" id="frmRequest" method="post">
    <input name="txtTransactionDate" type="text" id="txtTransactionDate" value="<%=vTransDate%>"/>
    <input name="txtOperatorNumber" type="text" id="txtOperatorNumber" value="<%=vOperatorNumber%>"/>
    <select name="cboAssignedSite" id="cboAssignedSite">
        <%If Not RS.EOF Then
            Do While Not RS.EOF%>
                <option value='<%= RS("assignedSite")%>'
                    <%If Request.Form("cboAssignedSite") = RS("assignedSite") Then Response.Write("selected")%>>
                    <%= RS("location")%></option>
                <%RS.MoveNext
            Loop
        End If%>
    </select>
</form>

没有可用的站点

更改值时,为什么要在jQuery中提交表单?你不需要两种价值观吗?如果下拉是空的,您可能需要考虑只在显示消息前检查值:是的,您是对的。我需要两种价值观;但是,我不知道如何在不提交表单的情况下将这两个值都获取到数据库中。我有两次提交,因为我不确定用户将首先输入哪个文本字段。再说一次,我是jQuery新手,所以可能有一个更简单的方法。我想将日期和操作员字段提交到数据库中,然后如果下拉菜单为空,则告诉用户类似“没有位置与您输入的日期和操作员关联。”这正是我要查找的!非常感谢。这也起了作用。我得把它放在我的后口袋里;我以前就想做这个服务器端。谢谢