I'm trying to output key value pairs from an object that has been stringified. But as soon as a single quote is detected, the data stops the output.
This is what I am getting:
[{"name":"john
But would like to see:
[{"name":"john's world"}]
This is the javascript code:
$(function() {
var allObjects = [
{
name: "john's world",
msg: "hello world"
}, {
name: "billy",
msg: "goodbye"
}
]
apiResults(allObjects);
function apiResults(processedItems) {
var output = '';
output += "<form class='add-item-form' method='get'>";
output += "<label for='item-input'>Enter a name to save your list and press ENTER</label><br><br>";
output += "<input type='text' id='item-input' name='item-input' title='Item' required autocomplete='off' placeholder='my wine list' autofocus>";
output += "<input type='hidden' id='search-results-array' name='search-results-array' value='" + JSON.stringify(processedItems) + "'>";
output += "<button id='submitBtn' type='submit'>Add item</button>";
output += "</form><br>";
output += "<div class='container'>";
$('#results').html(output);
console.log(processedItems);
}
$(document).on('submit', '.add-item-form', function(event) {
event.preventDefault();
if (event.type === 'keypress' && event.which === 13 || event.type === 'submit') {
// searchArray is attached to the api result
var searchArray = $('#search-results-array').val();
console.log("searchArray", searchArray);
}
});
});
Here's a jsfiddle of the problem: https://jsfiddle.net/marcusk1/mpahzfw4/15/
Your help is appreciated.