我正在开发一个响应式网站,并且我在搜索输入字段上使用了以下内联脚本,以便默认显示搜索
,当单击字段时,它将清除文本,以便用户可以输入新文本。
这在桌面版本上运行良好,但在移动版本上我必须单击两次才能将焦点设置在搜索字段上。
如果我单击一次并尝试输入它,则会将焦点设置在地址栏上。
我确信脚本在移动设备上会破坏它。
请告知我是否可以修复它或使用 jquery 脚本使其正常工作
<div class="search-container">
<asp:TextBox ID="txtSearch" Text="Search" CssClass="txtSearch" runat="server" onfocus="if(this.value=='Search')this.value='';" onblur="if(this.value=='')this.value='Search';" CausesValidation="True"></asp:TextBox>
<asp:Button ID="btnSearch" CssClass="btn-search" runat="server" Text="Search" onclick="btnSearch_Click" />
</div>
更新
渲染的 HTML 代码
<div class="search-container">
<input type="submit" class="btn-search btn" id="btnSearch" value="Go!" name="ctl00$btnSearch">
<input type="text" onblur="if(this.value=='')this.value='Search';" onfocus="if(this.value=='Search')this.value='';" class="txtSearch" id="txtSearch" value="Search" name="ctl00$txtSearch">
</div>
更新:
在进一步排除故障时,我注意到相同的代码可以在 jsfiddle 上运行,但在 asp.net 网站上使用时会中断。
示例
最佳答案
为什么不使用 placeholder属性?这回避了可能有错误的内联脚本的问题。
删除:text="search"
、onblur
和 onfocus
事件
<asp:TextBox placeholder="search"/>
关于javascript - 输入搜索字段在响应式网站的移动版本上无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22778895/