gpt4 book ai didi

Javascript 值在 '&' 字符后 chop

转载 作者:行者123 更新时间:2023-12-02 16:11:14 26 4
gpt4 key购买 nike

所以我对 Javascript 和 Ajax 比较陌生,并使用它们将数据提交到数据库进行实时更新,但我注意到当我的输入/文本区域中输入了“&”字符时,当我获取值,它会在“&”之后切断字符串。

我已经通过在下面的代码行之后使用警报函数测试了该值,并且完整的字符串就在那里,但不确定如何解决这个问题。

我尝试用 & 替换“&”字符,但无法使其工作。这是我用来获取值和我尝试使用的替换的内容。 注意:我正在使用 nicEditor,并且必须使用第一行代码从编辑器内存储文本的正确字段中获取文本。

var boxval = $('#statusContentForum').find('.nicEdit-main').text();
var dataString = 'statusContent='+ boxval;
var dataString = dataString.replace(/&/g, '&');
var dataString = dataString.replace(/\|&;\$%@"<>\(\)\+,/g, "");

并使用这些字符来测试它。

abcdefghijklmnopqrstuvwxyz 1234567890-=`~!@#$%^&*()_+{}[]|\"':;,<.>?/

但它只会导致这个

abcdefghijklmnopqrstuvwxyz 1234567890-=`~!@#$%^ 

你们以前遇到过这种情况吗?我将不胜感激任何帮助,如果您需要更多代码,请告诉我。我可以提供。

************更新完整代码************

这是完整的代码。

JS/AJAX:

$(function() {
//Update Message...
$(".update_button").click(function() {
//var boxval = $("#statusContent").val();
var boxval = $('#statusContentForum').find('.nicEdit-main').text();
var dataString = 'statusContent='+ boxval;

//var dataString = dataString.replace(/>/g, '&gt;');
//var dataString = dataString.replace(/</g, '&lt;');
var dataString = dataString.replace(/&/g, '&amp;');
var dataString = dataString.replace(/\|&;\$%@"<>\(\)\+,/g, "");

if(boxval=='') {
alert("Please Enter Some Text");
} else {
$("#flash").show();
$("#flash").fadeIn(400).html('<img src="images/ajax-loader.gif" align="absmiddle"> <span class="loading">Loading Comment...</span>');
// alert(dataString);
// throw new Error("Something went badly wrong!");
$.ajax({
type: "POST",
url: "ajax/statusPost.php",
data: dataString,
cache: false,
success: function(html){
$("ol#update").prepend(html);
$("ol#update li").slideDown("slow");
var clearVal = nicEditors.findEditor("statusContent");
clearVal.setContent("");
$("#flash").hide();
}
});
} return false;
});
});

HTML(如果需要)。

<form name="newstatus" id="statusContentForum" action="profile.php" method="post" class="commentForm">
<textarea name="statusContent" id="statusContent" placeholder="What's on your mind?"></textarea>
<input type="submit" value="Update" name="submit" class="update_button"/>
</form>

最佳答案

您正在手动构建an application/x-www-form-urlencoded string ,但未正确编码 & 。要将 & 表示为该格式的数据,您需要将其替换为 %26

encodeURIComponent 函数将为您执行此操作。

但是,您正在使用 jQuery,因此您根本不应该手动执行此操作。向 data 传递一个对象而不是字符串。

data: {
statusContent: boxval
},

关于Javascript 值在 '&' 字符后 chop ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30155464/

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