当我按下输入时,效果很好。但是,我还想通过单击文本框中的搜索按钮来执行搜索。我添加了oncommand
属性,它执行了搜索,但搜索结束后,搜索按钮变为了十字架。我点击十字架再次执行搜索。我检查了文档,但找不到有关如何将我的搜索按钮点击与搜索事件相关联的任何信息。
<textbox id="txt1" type="search" searchbutton="true" editable="true"
onkeypress="keyHandler(event);" />
答案 0 :(得分:1)
首先注意:不要直接处理点击或按键,始终使用command
事件 - 这可以确保元素的行为与用户期望的一致。
<textbox type="search">
假设执行相同的搜索两次没有任何意义。因此,在执行搜索后,搜索按钮变为十字形,单击该十字清除搜索文本(当然会触发新的command
事件)。如果不是点击十字架而是更改搜索文本,您将再次获得常用的搜索按钮。因此,您的command
处理程序应该查看搜索文本:如果文本为空,则显示默认结果(手动或通过按十字架清除搜索文本),如果文本非空,则执行新搜索。
答案 1 :(得分:1)
此解决方案可能与您的问题无关,但这可以让您了解完成任务。
XUL文本框:
<textbox id="textbox" type="search" oncommand="SearchKeyword(this)"/>
JS:
function SearchKeyword(oElem) // Function for search for the characters
{
var filter = document.getElementById("textbox");
filter.setAttribute("value", oElem.value);
document.getElementById("myTodoListTree").builder.rebuild();
}