我正在使用此方法http://www.w3schools.com/jsref/event_onsearch.asp
我想要的是我搜索过的文本留在textarea或者至少回到textarea,而不是因为我点击“输入”按钮而消失。
我理解它会清除文本,因为在链接中它们描述了这样的函数:“onsearch事件发生在用户按下”ENTER“键或单击type =”search“元素中的”x“按钮时“。
所以它就好像我点击了x按钮一样,但是,必须有一种方法可以让文本在那之后回来吗?
这是我目前的代码html代码
<form> <input type="search" name="search" id="searchid" onsearch="OnSearch(this)"/> </form>
这是我的javasript / jquery
function OnSearch(input) {
alert("The current value of the search field is " + input.value);
$("#searchid").val(input.value);
}
现在发生的是它正确警告textarea持有的值,尽管它不会添加textarea值。
编辑:看起来页面重新加载,如何插入页面重新加载后运行的代码?答案 0 :(得分:2)
我有另一种选择。由于您无法避免使用明确的功能,因此您可以在每次keypressed
全局变量时存储文本,如果按下x
,则保留文本框中的值。以下是代码:
<强> DEMO HERE 强>
var text="";
function OnSearch(input) {
if(input.value == "") {
$("#searchid").val(text);
}
else {
alert("You searched for " + input.value);
}
}
$(document).on('keyup','#searchid', function (e) {
text=$(this).val();
console.log(text);
});
<强>更新强>
如果您的html位于表单内,则可以执行以下操作:
签入document.ready
是否已有文字,如果是,请设置!!
$(document).ready(function()
{
if(localStorage.getItem("text")!="")
{
$("#searchid").val(localStorage.getItem("text"));
}
});
function OnSearch(input) {
if(input.value == "") {
$("#searchid").val(localStorage.getItem("text"));
}
else {
alert("You searched for " + input.value);
}
}
$(document).on('keyup','#searchid', function (e) {
localStorage.setItem("text",$(this).val());
});
答案 1 :(得分:1)
我认为这会帮助您显示警告对话框符号:
HTML:
<input type="search" name="search" id="searchid"/>
使用Javascript:
document.getElementById("searchid").onsearch = function() {yourfunctionname()};
/* Put this before the below function or in the top of the document */
function yourfunctionname(){
var x = document.getElementById("searchid").value;
alert("The current value of the search field is "+x);
/* Or do what ever you wish */
}
/*Remember to replace the yourfunctionname with your function's name */
如果是表格,请尝试:
您的表单应如下所示:
<form method="/* method */" action="/* action */" onSubmit="yourfunctionname()">
<input type="search" name="search" id="searchid"/>
/* Rest of your form*/
</form>
使用Javascript:
document.getElementById("searchid").value = localStorage.getItem("saved");
document.getElementById("searchid").onsearch = function() {yourfunctionname()};
/* Put this before the below function or in the top of the document */
function yourfunctionname(){
var x = document.getElementById("searchid").value;
alert("The current value of the search field is "+x);
/* Or do what ever you wish */
/* The below code does the trick*/
localStorage.setItem("saved", x);
location.reload();
return false;
}
/* Remember to replace the yourfunctionname with your function's name */
如果您有不同的功能来提交表单,那么将该表单的onsubmit属性替换为该函数的名称,并在其名称前添加单词“return”,并在该函数中添加以下javascript。
var x = document.getElementById("searchid").value
localStorage.setItem("saved", x);
location.reload();
return false;
如果您想要其他内容,请发表评论。
请接受,好像它可以解决您的问题。 谢谢......
最后还有更多的评论