I have the following :
<script>
$().ready(function() {
$("#myVal#").blur(function() {
var arr = jQuery.makeArray( $("#myArr").val() )
if ( $("#myVal").val().indexOf(arr) == -1 || $("#myVal").val().indexOf(arr) ==0) {
arr.push($("#myVal").val());
}
$("#myArr").val(arr)
});
});
</script>
<form action="" method="post" name="myF" id="myF">
<input type="text" name="myVal" id="myVal" value="">
<input type="text" name="myArr" id="myArr" value="">
<br/>
<input type="submit" name="submit" id="submit" value="go">
</form>
I am trying to check and see if a particular value entered to myVal is already in myArr. If so, don’t add to the array. If not, then add to the array. However, the array keeps growing with duplicate values.
what am i doing wrong?
thanks in advance.
First, makeArray is meant to take array-like objects as input, not strings. And I don’t see the purpose here. If you have an actual array
arr(perhaps made using split), you can do:Your current code calls
String.indexOf(arr), soarris implicitly converted to a (comma-separated)string. Then you search for the array string in the new value. This is clearly not what you want.