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

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.