我试图将一个变量,一个带撇号的名字,从HTML传递给jQuery。当值到达jQuery时,字符串缺少撇号后的所有字符。
名称示例:Test'Ing
这是表格的一部分。我动态填充列表,从数据库中提取时名称显示正确:
<?php echo "<select id='hiringManager' class='dropdown_form' name='hiringManager'>";
echo "<option disabled selected>Hiring Manager</option>";
while ($result_row = mysqli_fetch_row($hiring_manager_query)) {
echo "<option value='" . $result_row[0] . "'>" . $result_row[0] . "</option>";
}
echo "</select>" ?>
然后我从表单中获取值并将其显示在jQuery模式中以进行确认:
$('#hiringManagerModal').text($('#hiringManager').val());
显示的结果文本是:
“测试”而不是“测试”
我已经四处寻找,但未能找到解决此问题的帖子,或者我无法在搜索中正确地表达问题。
任何帮助表示赞赏。谢谢!
问题出在PHP代码上。我用'
s替换了"
s和"
s。之前输出的HTML是,
'
现在在所有替换之后,它是,
<select id='hiringManager' class='dropdown_form' name='hiringManager'>
<option disabled selected>Hiring Manager</option>
<option value='test'ing'>test'ing</option> <!-- In this option, the value is test instead of test'ing -->
</select>
真正发生的是当遇到<select id="hiringManager" class="dropdown_form" name="hiringManager">
<option disabled selected>Hiring Manager</option>
<option value="test'ing">test'ing</option><!-- Now, here the value is test'ing, as required -->
</select>
时,字符串终止,结果只输出“test”而不是“test'ing”。
所有替换后更正的PHP代码:
'
用,
<?php
echo '<select id="hiringManager" class="dropdown_form" onchange="displayInModal();" name="hiringManager">';
echo '<option disabled selected>Hiring Manager</option>';
while ($result_row = mysqli_fetch_row($hiring_manager_query)) {
echo '<option value="' . $result_row[0] . '">' . $result_row[0] . '</option>';
}
echo '</select>'
?>
现在,同样的问题会出现
$('#hiringManagerModal').text($('#hiringManager').val());
另一种方式:
<option value="test"ing"></option>