Ошибка одиночного символа апострофа при сравнении строк javascript - PullRequest
0 голосов
/ 28 марта 2020

Я передаю значение кнопке при нажатии, как показано ниже

echo '<b><button class="my secondary button"  onclick="onAnswerClickNew(this,\''.$myanswer.'\',4,\''.$triRow['A4'].'\')">'.'D: '.$triRow['A4'].'</button></b>';

и мой JavaScript код функции, например:

function onAnswerClickNew(_this, answer, option, type) {
    if (type == answer) {
        document.getElementById('correct_audio').play();
        _this.style.backgroundColor = "green";
        message.appendChild(document.createTextNode("CORRECT ANSWER"));
        messageContainer.appendChild(message);
        messageContainer.classList.add("correctMessage");
    }
}

Работает нормально, если слово нормальное, как thats но это не работает, если слово похоже на that's

Я отметил, что если слово похоже на thats, оно не передает никакое значение функции.

Я новичок в javascript и не могу решить проблему. Кто-нибудь может помочь мне решить вопрос?

Спасибо!

1 Ответ

0 голосов
/ 28 марта 2020

Похоже, вы используете php.

Если вы хотите сделать его чистым, сделайте это так:

<button id="my-secondary-button"><?php echo htmlspecialchars($triRow['A4']) ?></button>
...
<script type="application/javascript">
    $('#my-secondary-button').click(function() {
        let answer = <?php echo json_encode($myanswer) ?>
        ... // call other funtion or whatever
    })
</script>

Резюме: используйте htmlspecialchars и json_encode .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...