我需要向表单中添加一些动态输入,问题是使用jquery append方法会破坏html实体。
例如,尝试在文本区域内写入I <3 JQUERY
。
Textarea是使用CK编辑器5初始化的。我也尝试过SUMMERNOTE,但没有成功。
在我的示例中,通过POST aa_a
传递的变量被附加到post(我需要的是)上。 aa
变量是原始变量(仅在此示例中作为目的传递)。
aa
已正确发布
aa_a
已解码! (不想要这个!)
我想以附加值aa_a
传递aa
我需要使用附加到原始表单功能的JQUERY ,因为我已经按组动态输入(input-1的textarea-1,input-2的textarea-2等)。
删除我的示例只是为了给您一个示例。
代码示例:
<?php
header('Content-Type: text/html; charset=utf-8');
if ( isset($_POST) ) {
var_dump($_POST);
}
?>
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<form method="post" id="form" action="">
<textarea name="aa" class="aa"><?php if isset($_POST) { echo $_POST['aa']; } ?></textarea>
<input id="btn" type="submit" value="send">
</form>
<script src="https://code.jquery.com/jquery-3.4.0.js" integrity="sha256-DYZMCC8HTC+QDr5QNaIcfR7VSPtcISykd+6eSmBW5qo=" crossorigin="anonymous"></script>
<script src="ckeditor.js"></script>
<script>
$(document).ready(function() {
$("#btn").on("click", function(e) {
e.preventDefault();
editor.updateSourceElement();
//alert($(".aa").val());
//alert(editor.getData());
var form = $("#form");
form.append($('<textarea class="hidden" name="aa_a">'+ $(".aa").val() +'</textarea>') );
form.submit();
});
});
ClassicEditor.create( document.querySelector( '.aa' ), {
// toolbar: [ 'heading', '|', 'bold', 'italic', 'link' ]
} )
.then( editor => {
window.editor = editor;
} )
.catch( err => {
console.error( err.stack );
} );
</script>
</body>
</html>
答案 0 :(得分:0)
我找到了一种解决方法:
form.append($('<textarea class="hidden" name="aa_a">'+ $(".aa").val().replace(/&/g, "&") +'</textarea>') );
但是如果我用以下形式写:
Commercial & is equal to &
开机自检后,我进入表单:Commercial & is equal to &