Reputation: 5366
Here is my Javascript function where I'm comparing two strings one value receive as a function parameter and another one is fetching from json which is coming from Spring response.
But I'm very Surprise I'm not able to compare two strings with ===
and ==
, I can see the values in debugger.
I'm caling my function from my HTML code:
<textarea onblur="searchProduct(this.value)"></textarea >
Javascript:
function searchProduct(value)
{
alert(value);
for (i in allProducts) {
console.log(allProducts[0].productName);
var tempProductName=allProducts[i].productName;
alert(tempProductName.toString() == value.toString());
// checks product name is present or not
if( tempProductName.toString() === value.toString()){
// setting other values details of products
$('#description').val(allProducts[i].productDescription);
$('.cost').val(allProducts[i].unitPrice);
}//if
}
}//searchProduct
allProducts: response from spring
[{"productId":3,"sku":"QTY","vendorProductId":"v1","productName":"P1name","productDescription":"p1 desc","supplierId":"s1","categoryId":"c","quantityPerUnit":1.0,"unitPrice":760.0,"msrp":1.0,"availableSize":40.0,"availableColors":"black,blue","size":40.0,"color":"white","discount":0.0,"unitWeight":1.0,"unitsInStock":148.0,"unitsOnOrder":500.0,"reorderLevel":150.0,"productAvailable":"Y","discountAvailable":"N","currentOrder":0.0,"pictureURL":"Picture path","ranking":10,"note":"Sample Notes","smsNotification":"N","productExpiryDate":null,"productDeleted":null,"alertExpiryDate":null,"idsku":"IDSKU1"},{"productId":4,"sku":"QTY","vendorProductId":"v1","productName":"P2name","productDescription":"p1 desc","supplierId":"s1","categoryId":"c","quantityPerUnit":1.0,"unitPrice":1.0,"msrp":1.0,"availableSize":40.0,"availableColors":"black,blue","size":40.0,"color":"white","discount":0.0,"unitWeight":1.0,"unitsInStock":150.0,"unitsOnOrder":500.0,"reorderLevel":150.0,"productAvailable":"Y","discountAvailable":"N","currentOrder":0.0,"pictureURL":"Picture path","ranking":10,"note":"Sample Notes","smsNotification":"N","productExpiryDate":null,"productDeleted":null,"alertExpiryDate":null,"idsku":"IDSKU1"},{"productId":5,"sku":"QTY","vendorProductId":"v1","productName":"P3name","productDescription":"p1 desc","supplierId":"s1","categoryId":"c","quantityPerUnit":1.0,"unitPrice":1.0,"msrp":1.0,"availableSize":40.0,"availableColors":"black,blue","size":40.0,"color":"white","discount":0.0,"unitWeight":1.0,"unitsInStock":1000.0,"unitsOnOrder":500.0,"reorderLevel":150.0,"productAvailable":"Y","discountAvailable":"N","currentOrder":0.0,"pictureURL":"Picture path","ranking":10,"note":"Sample Notes","smsNotification":"N","productExpiryDate":null,"productDeleted":null,"alertExpiryDate":null,"idsku":"IDSKU1"},{"productId":6,"sku":"QTY","vendorProductId":"v1","productName":"P4name","productDescription":"p1 desc","supplierId":"s1","categoryId":"c","quantityPerUnit":1.0,"unitPrice":1.0,"msrp":1.0,"availableSize":40.0,"availableColors":"black,blue","size":40.0,"color":"white","discount":0.0,"unitWeight":1.0,"unitsInStock":1000.0,"unitsOnOrder":500.0,"reorderLevel":150.0,"productAvailable":"Y","discountAvailable":"N","currentOrder":0.0,"pictureURL":"Picture path","ranking":10,"note":"Sample Notes","smsNotification":"N","productExpiryDate":null,"productDeleted":null,"alertExpiryDate":null,"idsku":"IDSKU1"},{"productId":7,"sku":"QTY","vendorProductId":"v1","productName":"P5name","productDescription":"p1 desc","supplierId":"s1","categoryId":"c","quantityPerUnit":1.0,"unitPrice":1.0,"msrp":1.0,"availableSize":40.0,"availableColors":"black,blue","size":40.0,"color":"white","discount":0.0,"unitWeight":1.0,"unitsInStock":1000.0,"unitsOnOrder":500.0,"reorderLevel":150.0,"productAvailable":"Y","discountAvailable":"N","currentOrder":0.0,"pictureURL":"Picture path","ranking":10,"note":"Sample Notes","smsNotification":"N","productExpiryDate":null,"productDeleted":null,"alertExpiryDate":null,"idsku":"IDSKU1"},{"productId":8,"sku":"QTY","vendorProductId":"v1","productName":"P6name","productDescription":"p1 desc","supplierId":"s1","categoryId":"c","quantityPerUnit":1.0,"unitPrice":1.0,"msrp":1.0,"availableSize":40.0,"availableColors":"black,blue","size":40.0,"color":"white","discount":0.0,"unitWeight":1.0,"unitsInStock":1000.0,"unitsOnOrder":500.0,"reorderLevel":150.0,"productAvailable":"Y","discountAvailable":"N","currentOrder":0.0,"pictureURL":"Picture path","ranking":10,"note":"Sample Notes","smsNotification":"N","productExpiryDate":null,"productDeleted":null,"alertExpiryDate":null,"idsku":"IDSKU1"},{"productId":9,"sku":"QTY","vendorProductId":"v1","productName":"P7name","productDescription":"p1 desc","supplierId":"s1","categoryId":"c","quantityPerUnit":1.0,"unitPrice":1.0,"msrp":1.0,"availableSize":40.0,"availableColors":"black,blue","size":40.0,"color":"white","discount":0.0,"unitWeight":1.0,"unitsInStock":1000.0,"unitsOnOrder":500.0,"reorderLevel":150.0,"productAvailable":"Y","discountAvailable":"N","currentOrder":0.0,"pictureURL":"Picture path","ranking":10,"note":"Sample Notes","smsNotification":"N","productExpiryDate":null,"productDeleted":null,"alertExpiryDate":null,"idsku":"IDSKU1"},{"productId":10,"sku":"QTY","vendorProductId":"v1","productName":"P8name","productDescription":"p1 desc","supplierId":"s1","categoryId":"c","quantityPerUnit":1.0,"unitPrice":1.0,"msrp":1.0,"availableSize":40.0,"availableColors":"black,blue","size":40.0,"color":"white","discount":0.0,"unitWeight":1.0,"unitsInStock":1000.0,"unitsOnOrder":500.0,"reorderLevel":150.0,"productAvailable":"Y","discountAvailable":"N","currentOrder":0.0,"pictureURL":"Picture path","ranking":10,"note":"Sample Notes","smsNotification":"N","productExpiryDate":null,"productDeleted":null,"alertExpiryDate":null,"idsku":"IDSKU1"},{"productId":11,"sku":"QTY","vendorProductId":"v1","productName":"P9name","productDescription":"p1 desc","supplierId":"s1","categoryId":"c","quantityPerUnit":1.0,"unitPrice":1.0,"msrp":1.0,"availableSize":40.0,"availableColors":"black,blue","size":40.0,"color":"white","discount":0.0,"unitWeight":1.0,"unitsInStock":1000.0,"unitsOnOrder":500.0,"reorderLevel":150.0,"productAvailable":"Y","discountAvailable":"N","currentOrder":0.0,"pictureURL":"Picture path","ranking":10,"note":"Sample Notes","smsNotification":"N","productExpiryDate":null,"productDeleted":null,"alertExpiryDate":null,"idsku":"IDSKU1"},{"productId":12,"sku":"QTY","vendorProductId":"v1","productName":"P9name","productDescription":"p1 desc","supplierId":"s1","categoryId":"c","quantityPerUnit":1.0,"unitPrice":1.0,"msrp":1.0,"availableSize":40.0,"availableColors":"black,blue","size":40.0,"color":"white","discount":0.0,"unitWeight":1.0,"unitsInStock":1000.0,"unitsOnOrder":500.0,"reorderLevel":150.0,"productAvailable":"Y","discountAvailable":"N","currentOrder":0.0,"pictureURL":"Picture path","ranking":10,"note":"Sample Notes","smsNotification":"N","productExpiryDate":null,"productDeleted":null,"alertExpiryDate":null,"idsku":"IDSKU1"},{"productId":13,"sku":"QTY","vendorProductId":"v1","productName":"P9name","productDescription":"p1 desc","supplierId":"s1","categoryId":"c","quantityPerUnit":1.0,"unitPrice":1.0,"msrp":1.0,"availableSize":40.0,"availableColors":"black,blue","size":40.0,"color":"white","discount":0.0,"unitWeight":1.0,"unitsInStock":1000.0,"unitsOnOrder":500.0,"reorderLevel":150.0,"productAvailable":"Y","discountAvailable":"N","currentOrder":0.0,"pictureURL":"Picture path","ranking":10,"note":"Sample Notes","smsNotification":"N","productExpiryDate":null,"productDeleted":null,"alertExpiryDate":null,"idsku":"IDSKU1"},{"productId":14,"sku":"QTY","vendorProductId":"v1","productName":"P9name","productDescription":"p1 desc","supplierId":"s1","categoryId":"c","quantityPerUnit":1.0,"unitPrice":1.0,"msrp":1.0,"availableSize":40.0,"availableColors":"black,blue","size":40.0,"color":"white","discount":0.0,"unitWeight":1.0,"unitsInStock":1000.0,"unitsOnOrder":500.0,"reorderLevel":150.0,"productAvailable":"Y","discountAvailable":"N","currentOrder":0.0,"pictureURL":"Picture path","ranking":10,"note":"Sample Notes","smsNotification":"N","productExpiryDate":null,"productDeleted":null,"alertExpiryDate":null,"idsku":"IDSKU1"},{"productId":15,"sku":"QTY","vendorProductId":"v1","productName":"P9name","productDescription":"p1 desc","supplierId":"s1","categoryId":"c","quantityPerUnit":1.0,"unitPrice":1.0,"msrp":1.0,"availableSize":40.0,"availableColors":"black,blue","size":40.0,"color":"white","discount":0.0,"unitWeight":1.0,"unitsInStock":1000.0,"unitsOnOrder":500.0,"reorderLevel":150.0,"productAvailable":"Y","discountAvailable":"N","currentOrder":0.0,"pictureURL":"Picture path","ranking":10,"note":"Sample Notes","smsNotification":"N","productExpiryDate":null,"productDeleted":null,"alertExpiryDate":null,"idsku":"IDSKU1"},{"productId":16,"sku":"QTY","vendorProductId":"v1","productName":"P10name","productDescription":"p1 desc","supplierId":"s1","categoryId":"c","quantityPerUnit":1.0,"unitPrice":1.0,"msrp":1.0,"availableSize":40.0,"availableColors":"black,blue","size":40.0,"color":"white","discount":0.0,"unitWeight":1.0,"unitsInStock":1000.0,"unitsOnOrder":500.0,"reorderLevel":150.0,"productAvailable":"Y","discountAvailable":"N","currentOrder":0.0,"pictureURL":"Picture path","ranking":10,"note":"Sample Notes","smsNotification":"N","productExpiryDate":null,"productDeleted":null,"alertExpiryDate":null,"idsku":"IDSKU1"}]
Upvotes: 0
Views: 84
Reputation: 3172
Looking at your code, this should work.
Try changing the iterator - for..in
is for iterating over objects (ie. dictionaries). To iterate over an array, use either a regular for
or a forEach
:
function searchProduct(value) {
allProducts
.filter(function(product) {
return product[productName] === value
})
.forEach(function(product) {
$('#description').val(product.productDescription);
$('.cost').val(product.unitPrice);
});
}
Upvotes: 2
Reputation: 138
JS string comparison is case sensitive, and you probably need case insensitive one, for example:
tempProductName.toUpperCase() === value.toUpperCase()
instead of:
tempProductName.toString() === value.toString()
You don't need toString()
anyway, because the field is already a string.
Upvotes: 2
Reputation: 2411
You can implement your own string comparing method with indexOf
and length
:
String.prototype.equals = function (str2) {
return this.indexOf(str2) == 0 && this.length == str2.length;
}
Or a more "PHP" style like method:
function string_compare (str1, str2) {
return str1.indexOf(str2) == 0 && str1.length == str2.length;
}
Upvotes: 1