[英]How do I fix JS 'unterminated string literal' error
我在我的网站上有一个表单,当用户在提交表单之前单击提交时运行一些基本的JS验证,但是在检查某些字段时我收到错误'未终止的字符串文字'。
我理解这个错误是什么(在这种情况下用户在textarea中添加换行符)但我想不出一种避免/修复它的方法。
以下是我如何申报表格 -
<form id="<?php echo $form_name; ?>"
name="<?php echo $form_name; ?>"
class="standard-form"
method="POST" action=""
onsubmit="return validate_form('<?php echo $form_name; ?>')">
这就是我如何检查导致我麻烦的领域 -
var your_query = document.forms['enquiry']['your_query'].value
if(your_query === ''){
result = false;
}
这里的任何帮助都会受到关注。
谢谢。
我猜是$form_name
包含一个引号字符: '
首先,你应该使用htmlentities
和json_encode
逃避输出:
<form id="<?php echo htmlentities($form_name); ?>"
name="<?php echo htmlentities($form_name); ?>"
class="standard-form"
method="POST"
action=""
onsubmit="return validate_form(<?php echo htmlentities(json_encode($form_name)); ?>)">
另请参阅将PHP字符串传递给Javascript变量(包括转义换行符)
接下来,不要使用onsubmit
内部事件属性 ,也不要将表单名称传递给它; 在JavaScript文件中使用适当的DOM脚本(或jQuery)和事件处理:
(function() {
var form = document.getElementById("<?php echo json_encode($form_name); ?>");
form.addEventListener('submit', onSubmit, false);
function onSubmit() {
// manipulate variable `form` as necessary
// without having to pass around a `form_name`
}
}());
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.