Кнопка отправки HTML с косой чертой в onClick - PullRequest
0 голосов
/ 17 октября 2018

У меня очень простая форма, которая использует косую черту в кнопке ввода на клике.Это встроенная форма для приложения, которое мы используем.Приложение использует IE для обработки формы.

<BODY onLoad=setFocus(this)><FORM NAME=fMU METHOD=GET ACTION="http://HammerHead/MU">
<TABLE>
    <input type="hidden" name="Beat/Sta" value="">
    <tr>
        <td COLSPAN=2>
            <input type=SUBMIT onclick="this.form.Beat/Sta.value='B01'" value="BF1" />
        </td>
        <td></td>
    </tr>
    <TR>
        <TD><INPUT TYPE=RESET VALUE="Clear" /></TD>
        <td></td>
        <td></td>
    </TR>
</TABLE>

При использовании значения «Beat / Sta» в форме оно не передает значение «B01».Из-за "/".Я получаю код ошибки синтаксиса скрипта 0.

У меня есть еще одна кнопка в отдельной форме, которая отлично работает, но выглядит как показано ниже, без "/" в onClick:

<input type=SUBMIT onclick="this.form.Location.value='home'" value="Home" />

Эта кнопка работает нормально и передает значение местоположения "home"

Я пытался использовать кавычки, двойные кавычки, множественные косые черты и т.д ..., чтобы попытаться убедиться, что / передан функциино ничто, похоже, не распознает значение "Beat / Sta".Я могу исправить ошибки скрипта с помощью кавычек, но он все равно не передаст значение B01 в «Beat / Sta»

Ответы [ 2 ]

0 голосов
/ 17 октября 2018

Вы можете использовать

document.getElementsByName('Beat/Sta')[0].value='B01'

Весь ваш код будет:

<BODY onLoad=setFocus(this)><FORM NAME=fMU METHOD=GET ACTION="http://HammerHead/MU">
<TABLE>
<input type="hidden" name="Beat/Sta" value="">
<tr>
<td COLSPAN=2>
<input type=SUBMIT onclick="document.getElementsByName('Beat/Sta')[0].value='B01'" value="BF1" />
</td>
<td></td>
</tr>
<TR>
<TD><INPUT TYPE=RESET VALUE="Clear" /></TD>
<td></td>
<td></td>
</TR>
</TABLE>

Но будет лучше, если вы будете избегать использования специальных символов в именах и идентификаторах

0 голосов
/ 17 октября 2018

В языках программирования, включая html, символы часто используются как «специальные символы», то есть они больше не рассматриваются как простые символы, но имеют определенные функции.Подумайте о символах, которые вы используете вокруг каждого тега (<и>).

Как вы можете видеть в своем собственном коде, «/» часто используется для закрытия существующего тега (например).Это позволяет вам знать, что в html '/' - это не просто косая черта, а конкретная 'функция'.

Если вы хотите использовать специальные символы как часть строки, имени переменной или другого.Вам нужно сделать что-то под названием escape сказала персонажа.Экранирование означает, что вы сообщаете коду, что вы не используете специальную функцию, связанную с указанным символом, но вместо этого вы хотите использовать символ в качестве простого символа.

В html вы должны использовать специальные коды для замены специальных символов.Посмотрите на этой странице список escape-символов HTML: escape-символов HTML .

То же самое для javascript, вам нужно что-то использовать, чтобы код знал, что вы хотите использовать свой '/ 'как простой символ.Посмотрите эту ссылку о том, как экранировать в JS: Экранирующий символ JS

Однако , как правило, старайтесь избегать использования специальных символов, если можете.Как уже упоминалось в комментариях, «_» (подчеркивание) является хорошей альтернативой.

...