为什么javascript忽略文本框默认文本的更改
why javascript ignores changes in default text of the textbox?
我不明白为什么javascript忽略了文本框默认文本的变化?
更多细节:文本框的默认文本为"Search"。当客户端尝试提交带有默认文本的搜索表单时,它应该返回false并将焦点放回文本框。
<asp:Panel CssClass="search rnd" ID="SearchBox" runat="server" DefaultButton="btnSearch">
<asp:TextBox ID="txtSearch" runat="server" ValidationGroup="searchForm" MaxLength="100" CssClass="text" Text="Search" onfocus="if ( this.value == 'Search') { this.value = ''; }" onblur="if ( this.value == '' ) { this.value = 'Search'; }"></asp:TextBox>
<asp:Button ID="btnSearch" runat="server" ValidationGroup="searchForm" CssClass="btn-search" ToolTip="Search the Website" OnClick="btnSearch_Click" OnClientClick="if ( document.getElementById('<%= txtSearch.ClientID %>').value = 'Search') { document.getElementById('<%= txtSearch.ClientID %>').style.background = 'yellow'; document.getElementById('<%= txtSearch.ClientID %>').focus(); return false; } " />
<asp:RequiredFieldValidator CssClass="hdn rf" ID="RequiredFieldValidator1" ControlToValidate="txtSearch" runat="server" ErrorMessage="*"></asp:RequiredFieldValidator>
</asp:Panel>
谁来帮帮我!
你在分配而不是比较。
变化:if ( document.getElementById('<%= txtSearch.ClientID %>').value = 'Search')
To if ( document.getElementById('<%= txtSearch.ClientID %>').value == 'Search')
你的代码工作得很好,我只是把代码放在一个函数中,并称之为OnClientClick
您还忘记在if
语句中使用==
而不是=
试试这个:
<asp:Panel CssClass="search rnd" ID="SearchBox" runat="server" DefaultButton="btnSearch">
<asp:TextBox ID="txtSearch" runat="server" ValidationGroup="searchForm" MaxLength="100" CssClass="text" Text="Search"
onfocus="if ( this.value == 'Search') { this.value = ''; }" onblur="if ( this.value == '' ) { this.value = 'Search'; }"></asp:TextBox>
<asp:Button ID="btnSearch" runat="server" ValidationGroup="searchForm" CssClass="btn-search" ToolTip="Search the Website"
OnClick="btnSearch_Click" OnClientClick=" validateTextbox()" />
<asp:RequiredFieldValidator CssClass="hdn rf" ID="RequiredFieldValidator1" ControlToValidate="txtSearch" runat="server"
ErrorMessage="*"></asp:RequiredFieldValidator>
</asp:Panel>
<script>
function validateTextbox() {
if (document.getElementById('<%= txtSearch.ClientID %>').value == 'Search') {
document.getElementById('<%= txtSearch.ClientID %>').style.background = 'yellow';
document.getElementById('<%= txtSearch.ClientID %>').focus();
return false;
}
}
</script>
相关文章:
- 或者在表单上选择默认选项文本(选择1)
- 单击文本时删除文本框的默认数据
- 在文本区域禁用javascript定义的keydown事件并恢复默认行为
- 在AngularJS Dropdownlost中设置默认文本选项
- 如何为显示jquery滑块值的文本框设置默认值
- 我可以为高图表中的所有文本设置默认颜色吗?
- 是否覆盖网站上文本输入区域的默认移动设备键盘?(HTML/JS/jQuery)
- knockout.js、knockout可排序和默认文本
- 文本框的一部分为只读,具有默认值
- Sharepoint 2013 Javascript ClientPeoplePicker默认值文本
- 在发送之前,点击按钮清除多个输入[类型=文本]默认值
- 如何在附有日期选择器的文本框中设置默认日期(以这种格式“dd/mm/yy”)
- 单击时清除
标记中的默认文本
- 如何在 RaphaelJS 中根据需要为文本创建默认属性并链接其他属性
- 如果文本框为空,则将其返回到默认值
- 清除输入,模糊文本区域和默认值(如果字段为空)
- 如何将默认文本添加到搜索栏
- 如何在 WP 中的表单中向输入字段添加默认文本
- 设置输入文本默认值,并选择选项值,然后禁用
- React输入文本默认值和onblur函数使输入文本只读