gpt4 book ai didi

javascript - 将引号传递给 javascript 函数

转载 作者:行者123 更新时间:2023-11-29 22:29:40 27 4
gpt4 key购买 nike

我让 stackoverflow 帮助我解决了上一个问题中的 javascript 函数。该函数创建了一个 div,然后将两个表单输入字段附加到新创建的 div 中。该函数接受了 4 个参数。其中之一是表单输入字段的值。问题是如果单引号(撇号)在它破坏函数的值中。我正在用 PHP 开发并使用 jQuery。我已经尝试过 addslashes()、addcslashes($text,'"') 和 json_encode(),它们都非常适合双引号但不是单引号。我做错了什么?

Link-1 因撇号而中断。 Link-2 按原样工作,具有“Soda”值。

例子:

<?php
$text = "I'm Frustrated";
$text = addslashes($text);
?>
<!DOCTYPE html>
<html>
<head>
<style type="text/css">
#item_box1{
width: 300px;
margin: 0 auto;
height: 100px;
border: 1px solid blue
}

#item_box2{
width: 300px;
margin: 0 auto;
height: 100px;
border: 1px solid red
}
.link-button {
color: rgb(0, 0, 255);
cursor: pointer
}
</style>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.6.3.js"></script>
<script type="text/javascript">
function add_item( code, title, price, divbox )
{
var idtag, item_title, item_price, item_code;
// Generate an id based on timestamp
idtag = "div_" + new Date().getTime();
// Generate a new div.
$( divbox ).append( "<div id=\"" + idtag + "\"></div>" );

if ( divbox == "#item_box1" )
{
item_title = $("<input/>", {
type: 'text',
name: "box1_item_title[]",
value: title
});

item_price = $("<input/>", {
type: 'text',
name: "box1_item_price[]",
value: price
});
// Show in the document.
$( "#" + idtag ).append( item_title, item_price );
}
else
{
item_code = $("<input/>", {
type: 'text',
name: "box2_item_code[]",
value: code
});

item_title = $("<input/>", {
type: 'text',
name: "box2_item_title[]",
value: title
});
// Show in the document.
$( "#" + idtag ).append( item_code, item_title );
}
}
</script>
</head>
<body>
<a class="link-button" onclick="return add_item('xyz', "<?php echo $text;?>", '45.99', '#item_box1');">Add Item to Box 1</a>
<br>
<a class="link-button" onclick="return add_item('123', 'Soda', '1.99', '#item_box2');">Add Item to Box 2</a>
<br>
<br>
<div id='item_box1'></div>
<div id='item_box2'></div>

</body>

页面的源代码最终看起来像这样:

<a class="link-button" onclick="return add_item('xyz', "I\'m Frustrated", '45.99', '#item_box1');">Add Item to Box 1</a>

最佳答案

在链接 1 的 onclick 属性中,您在双引号 HTML 属性中使用了未转义的双引号 JavaScript 字符串。 onclick 属性最终设置为 return add_item('xyz', 并且打开标记的其余部分不是有效的 HTML。更改 PHP 标记周围的双引号单引号应该可以解决这个问题。

生成的属性定义将是
onclick="return add_item('xyz', '我很沮丧', '45.99', '#item_box1');"
我很确定这对 HTML 和 JavaScript 都有效。

关于javascript - 将引号传递给 javascript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7669565/

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