Я нашел некоторые вопросы вроде этого, но, к сожалению, ни одно из решений не решило мою проблему.Escape apostrophe не работает
Вот что я делаю (также попытался с json_encode
.Didn't работы либо)
PHP
$head="<div id='headx'>".htmlspecialchars($headu)."<input type='submit' id='edit_head' value='Edit' onclick='edit_title9(this.id,\"".htmlspecialchars($headu,ENT_QUOTES)."\")'></div>
Javascript
function edit_title9(ya,va1){
var divid = document.getElementById(ya).parentNode.id;
var cola=ya;
var val1=va1.replace(/'/g,"\'");
alert(val1); //works fine
document.getElementById(divid).innerHTML="<input type='text' id='taxi1' width='40px' value='"+val1+"' >";
}
, когда я использую alert(val1)
, он отлично работает и показывает '
на l ine, но в text field
, я получаю только до apostrophe(exclusive)
, а остальное снимается.
Но когда я использую другие символы, он хорошо показывает text field
.
va1.replace(/'/g,"\A");
дает heAs good
для he's good
на текстовое поле.
Почему это происходит и как я могу избавиться от этого?
измените ваше '.replace', чтобы заменить на значение' \\\ ''. Вероятно, вам нужно удвоить стоимость замены. –
Или событие лучше, установите innerHTML и следующую строку 'getElementById ('ID'). Value = val1' без замены. Или просто используйте вызовы DOM. –
'\\\ '' не работает. Дает мне 'he \\' и остался удален – Coder