我正在尝试创建一个表单,尽管用户已经输入了在焦点关闭时提交的下拉框:如果他们单击“清除”按钮,它将改为清除表单而不是保存值。
查询:
$("#clearbtn").click(function () {
alert("clear clicked");
$(this).data("clicked", true);
});
if ($("#clearbtn").data("clicked") == true) {
this.form.submit();
}
else {
$("#MainContent_ddlCountry").blur(function () {
$("#MainContent_txtCountrySelected").val($(this).val());
this.form.submit();
});
}
看法:
<% var qryCountry = from c in dbPCCommon.Country
orderby c.CountryDescription ascending
select new { c.CountryId, c.CountryDescription };
ddlCountry.DataSource = qryCountry;
ddlCountry.DataTextField = "CountryDescription";
ddlCountry.DataValueField = "CountryId";
ddlCountry.SelectedValue = Model.CountryId.ToString();
ddlCountry.DataBind();
%>
<tr>
<td class="labels">Country:</td>
<td>
<asp:DropDownList ID="ddlCountry" runat="server" />
<%=Html.HiddenFor(a => Model.CountryId, new {@Value = ddlCountry.SelectedValue}) %>
</td>
</tr>
<asp:TextBox ID="txtCountrySelected" name = "txtCountrySelected" runat="server" />
但是,每次我运行这个 jQuery 时,它都会默认使用 else 语句。或者,我是不是完全走错了路?
编辑澄清:让我尝试两种情况。
场景 1:用户在表单中填写地址信息,他们的光标焦点移动到“国家/地区”的最后一个下拉框。这里的想法是,一旦用户关闭 Country 框(或失去焦点),它将提交表单并因此保存。这很好用。
场景2:现在,如果用户填写信息并且他们的光标焦点移动到“国家”的最后一个下拉菜单,他们决定通过单击屏幕上的“清除”提交按钮来清除整个表单。我希望这清除整个表单而不是提交条目。
我认为通过使用焦点在下拉框上的 .blur ,当用户单击按钮时它不会失去焦点并且应该清除表单,因为单击按钮时焦点没有移动。然而,我错了。