gpt4 book ai didi

javascript - 如何修复 JS 'unterminated string literal' 错误

转载 作者:行者123 更新时间:2023-11-29 10:23:01 24 4
gpt4 key购买 nike

我的网站上有一个表单,当用户单击提交时,在提交表单之前运行一些基本的 JS 验证,但是在检查某些字段时我收到错误“未终止的字符串文字”。

我明白这个错误是什么(在这种情况下用户在文本区域中添加换行符)但我想不出避免/修复它的方法。

这是我声明表单的方式 -

<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 包含一个单引号字符:'

首先,您真的应该使用 htmlentitiesjson_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)); ?>)">

另见 Pass a PHP string to a Javascript variable (including escaping newlines)

接下来,不要使用那个onsubmit intrinsic event attribute并且不要将表单名称传递给它;在 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`
}
}());

关于javascript - 如何修复 JS 'unterminated string literal' 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7661861/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com