Как расширение этого question, я пытаюсь вставить Javascript в свойство <h:commandButton />
onclick
, поскольку action
уже выполняет ajax.
Что я хочу сделать:
Получите выбранные элементы в списке и включите их в параметры, которые будут использоваться в JSF FileServlet
. т.е. para2=value1¶m=value2¶m=value3
Вот что у меня есть:
<script type ="text/javascript">
function myScript() {
var box = document.getElementbyId('myForm:box');
var length = box.options.length;
var paramstring = "";
for (var i = 0; i < length; i++) {
if (i != (length - 1) {
if (box.options[i].selected) {
paramstring = paramstring + "param=" + box.options[i].value + "&";
}
} else {
paramstring = paramstring + "param=" + box.options[i].value;
}
}
if (document.getElementById('myForm:checkbox').checked) {
window.location='fileServlet? + paramstring;
}
}
</script>
Что я получаю при загрузке страницы:
javax.servlet.ServletException: Error Parsing /page.xhtml: Error Traced[line:15] The content of elements must consist of well-formed character data or markup.
Что не вызывает исключение:
<script type ="text/javascript">
function myScript() {
var box = document.getElementbyId('myForm:box');
var length = box.options.length;
var paramstring = "";
if (document.getElementById('myForm:checkbox').checked) {
window.location='fileServlet? + paramstring;
}
}
</script>
Как только я добавлю в for (var i = 0; i < length; i++)
или даже for (var i = 0; i < 10; i++)
, страница не будет загружена. Почему это не нравится цикл for?