txtTransactionDate
和txtOperatorNumber
是SQL proc中的参数,允许cboAssignedSite
下拉列表自动填充。有时,基于所选参数,cboAssignedSite
没有值,我想向用户显示一条有意义的消息,表明这一点。
到目前为止,我尝试的是在其中一个文本字段的change事件中放置警报。问题是警报似乎发生在表单提交之前,因此无论下拉列表中是否有值,它在警报时始终显示为空。
我是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:
<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>
答案 0 :(得分:1)
你可以在没有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>
答案 1 :(得分:0)
除非您需要/想要阻止用户提交表单,否则我会执行以下操作: 如果下拉列表为空,请在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>