I am studying jquery searching box.
I am getting trouble with getting string var from html.
in my html file.
i have..
<header>
<div id="searchBox">
<form name="searchForm">
<div>
<i class="icon-search icon-large icon-height"></i>
<input name="searchfield" type="search" size="20" maxlength="30">
</div>
</form>
</div>
</header>
and
in my jquery file i have
$(".icon-search").click(function() {
var searchstring = $(this).text('#searchfield');// $('#searchfield');
searchstring.focus();
//$('#searchBox').html($('input:searchfield').val());
alert("searchfield. " + searchstring + " hahah");
});
when I clicked to searching some strings.
It shows that Object object instead of some strings.
I am not really sure how to convert object to strings.
Does anybody know how to convert it ?
This line of code means nothing:
var searchstring = $(this).text('#searchfield');// $('#searchfield');
It should indeed be:
var searchstring = $('#searchfield');
Then you'll be able to do:
searchstring.focus();
And retreive the text with .val():
alert("searchfield. " + searchstring.val() + " hahah");
.text() gets or sets the text content of a HTML element. It gets a value if it is being invoked without any parameters, and it sets a value if a value is passed to it. So $(this).text('#searchfield') would set the inner text of $(this) (your .icon-search) to the string "#searchfield".
Now, a form element doesn't have an inner text, it has a value, hence .val(), which otherwise works the same way as .text()
alert(myTextbox.val()); // get value
myTextbox.val('test'); // set value
Edit:
Also, $('#searchfield') looks for an element of the ID "searchfield". You should either add id="searchfield" to your textfield, or update your script to
var searchstring = $('input[name=searchfield]');
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With