0

Consider that i have the following html

<input type="text" id="other_floor_plans" name="other_floor_plans[]" value="["Pool","Office","Sprinkler","Boiler"]">

To fetch the values i use

a = $('#other_floor_plans').val()

It returns the following

"["Pool","Office","Sprinkler","Boiler"]"

If i use a[0], it returns "[" as output. I need to get "Pool" as the first value.

How to accomplish this?

4 Answers 4

4

Your value is a type of string which has a correct JSON syntax. Just parse with JSON.parse into the array and use your syntax.

const value = '["Pool","Office","Sprinkler","Boiler"]';
const array = JSON.parse(value);

console.log(array[0]);

Sign up to request clarification or add additional context in comments.

Comments

0

I think you need to change little bit of your code specially in markup.

changed your input markup into this <input type="text" id="other_floor_plans" name="other_floor_plans[]" value='["Pool","Office","Sprinkler","Boiler"]'>

then get value by jQuery

var a = $('#other_floor_plans').val(),
a = JSON.parse(a);
console.log(a[0]);

you need to use JSON.parse because you get json formate value and need to be parsed.

for my recommendation you just comma separate value like

<input type="text" id="other_floor_plans" name="other_floor_plans[]" value="Pool, Office, Sprinkler, Boiler">

then get first value by jQuery

var a = $('#other_floor_plans').val().split(",");
console.log(a[0]);

This one is much more readable and easy I guess.

Comments

0

You can use eval function to convert string to array and get the value.

var a = "['Pool','Office','Sprinkler','Boiler']"; // or you can also assign like this var a ='["Pool","Office","Sprinkler","Boiler"]' 
var firstItem = eval(a)[0];
console.log(firstItem);  //output will be "Pool"

Comments

0

There you doing a wrong practice when you initialize value in input box you must contain a value in different quotation symbols. there you take " for value assign and " also for array string, that truncate your string on the second " that's why this return only [ in your value. Try to use like this:

HTML

<input type="text" id="other_floor_plans" name="other_floor_plans[]" value='["Pool","Office","Sprinkler","Boiler"]'>

JQuery

var a = $('#other_floor_plans').val();
a = JSON.parse(a);
console.log(a);

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.