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.
asked Aug 30, 2016 at 11:39
RGriffiths
6,02022 gold badges88 silver badges136 bronze badges
2 Answers 2
You can try this, you had problems at escaping quotes:
var out_list = '<select name="item' + element + '" onchange="getQualType(this.value, \'qualType' + element + '\')">';
answered Aug 30, 2016 at 11:45
vaso123
12.4k4 gold badges38 silver badges68 bronze badges
Sign up to request clarification or add additional context in comments.
Comments
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 + "');\">";
answered Aug 30, 2016 at 11:45
Ben Hillier
2,1041 gold badge11 silver badges15 bronze badges
Comments
lang-js
selectit's output, per se. Its writing out yourselectelement literally (and thus, correctly). Your string that creates it is technically the issue. You could just create a handler for theselectthrough JS, and handle theonchangeevent that way, instead :)'qualType" + element + "'