RGriffiths
RGriffiths

Reputation: 5970

Trouble creating string in Javascript

I have a script as follows where element is a number:

function updateList(element) {
    var out_list = "<Select name='item" + element + "' onchange=getQualType(this.value, 'qualType" + element + "')>";
.... add options here ...
    out_list += "</Select>"
    document.getElementById('dropdown_list' + element).innerHTML = out_list;
}

However what is in the browser is:

<select name="item40" onchange="getQualType(this.value," 'qualtype40')="">
</script>

Can anyone point out what is causing the incorrect quotes in the output?

UPDATE

Spotted it:

    var out_list = "<Select name='item" + element + "' onchange=getQualType(this.value, 'qualType" + element + "')'>";

Single quote after bracket - thanks all.

Upvotes: -1

Views: 55

Answers (2)

Ben Hillier
Ben Hillier

Reputation: 2104

I would start by quoting the onChange. If you don't do it, the browser makes its own decisions:

 var out_list = "<Select name='item" + element + "' onchange=\"getQualType(this.value, 'qualType" + element + "');\">";

Upvotes: 0

vaso123
vaso123

Reputation: 12391

You can try this, you had problems at escaping quotes:

var out_list = '<select name="item' + element + '" onchange="getQualType(this.value, \'qualType' + element + '\')">';

Upvotes: 1

Related Questions