Possible Duplicate:
How to find index of object in a JavaScript array with jQuery
I need to find value of input entered if already exists in .data() function.
I am trying this way.
jQuery
var array = $("form[name=update]").data("values", {"v1": "value1", "v2": "value2", "v3": "value3", "v4": "value4", "v5": "value5"});
if ($.inArray("value1", array) > -1){alert("duplicate value")}
But it does nothing.
Please see and suggest any possible way to do this.
Thanks.
asked Jan 19, 2013 at 5:48
user1411607
2 Answers 2
Here
grep (which does not do objects) did not work for me either.
Here is a $.each version
$(function() {
$("form[name=update]").data("values", {"v1": "value11", "v2": "value2", "v3": "value3", "v4": "value4", "v5": "value5"});
$(".but").on("click",function(e) {
var fData = $("form[name=update]").data("values");
var val = $(this).val();
console.log(fData);
$.each(fData, function(n,i) {
console.log("!!!",n,i)
if (i===val) {
alert("duplicate value");
return false;
}
})
e.preventDefault()
});
});
This is now I had a look, the same method as danronmoon's solution
$(function() {
$("form[name=update]").data("values", {"v1": "value11", "v2": "value2", "v3": "value3", "v4": "value4", "v5": "value5"});
$(".but").on("click",function(e) {
var fData = $("form[name=update]").data("values");
var val = $(this).val();
console.log(fData);
for (var o in fData) {
console.log("!!!",o,fData[o])
if (fData[o]===val) {
alert("duplicate value");
break;
}
}
e.preventDefault()
});
});
answered Jan 19, 2013 at 7:01
mplungjan
180k29 gold badges183 silver badges246 bronze badges
Sign up to request clarification or add additional context in comments.
1 Comment
Its giving false alert for value11, please see this demo.
$("form[name=update]").data("values", {/* values here*/});
// then later
var valueToLookFor = 'value1',
formData = $("form[name=update]").data().values;
for (var i in formData) {
if (formData[i] === valueToLookFor) {
// you found it!
}
}
answered Jan 19, 2013 at 6:00
danronmoon
3,8735 gold badges36 silver badges58 bronze badges
5 Comments
danronmoon
What is 'it'? Please be more specific. I took a stab at it, but you may have to update your question to be less ambiguous.
danronmoon
I just updated. Try that
danronmoon
It works fine for me in the console. Try using
console.logs and seeing what's in formData.lang-js
arrayisn't an array; it's an instance of jQuery, and the values you are setting are in an object anyway. Read api.jquery.com/jQuery.data$.grep, can you suggest something. Thanks.