Fix a warning thrown by HTML Validator
javascript, jquery, php, validation, xhtml
Solution
The issue is that any `</` sequence — known as ETAGO — ends a CDATA element such as a `<script>`. You can get away with `</` in browsers but not `</script`.
The simplest workaround is to break up the `</` sequence with a backslash-escape:
sel.append('<option value="' + data[i].id + '">' + data[i].nombre + '<\/option>');
However this line still has problems, because you aren't HTML-escaping your `id` and `nombre` values. If they may contain `<`, `&` or `"`, you've just built yourself a client-side XSS vulnerability!
So either HTML-escape your text values before putting them into strings, or, perhaps simpler, just use the standard DOM:
sel.append(new Option(data[i].nombre, data[i].id));
Problem
I have some JavaScript code in my php website. This code uses jQuery, and builds a < select > menu using ajax calls. Here is the code ``` sel.append('<option value="' + data[i].id + '">' + data[i].nombre + '</option>'); ``` And this gives me the following warning line 240 column 82 - Warning: '<' + '/' + letter not allowed here Does anyone know how can I fix this warning, so my html validates? Thanks