Допустимы ли точки в свойстве name кнопки HTML - PullRequest
0 голосов
/ 16 апреля 2010

страница с небольшим количеством кода MVC:

<%=Html.SubmitButton("ChooseWebinar.Submit", "Continue to Registration Details")%><br/>

, который генерирует кнопку ввода, где '.'встроено в имя:

<input id="ChooseWebinar_Submit" name="Webinar.Submit" type="submit" value="Continue" />

При загрузке страницы этот элемент управления (кнопка отправки) скрывается - когда одно из двух различных раскрывающихся списков регистрирует значение, отображается кнопка:

function toggleChooseWebinarSubmit() {
if ($("#ChooseWebinar_RecordedWebinarId").val() || $("#ChooseWebinar_UpcomingWebinarId").val()) {
    $("#ChooseWebinar_Submit").show();
} else {
    $("#ChooseWebinar_Submit").hide();
}

Я только что получил отчет от пользователя IE8, в котором говорится, что после выбора значения в раскрывающемся списке кнопка не отображается.Я не могу воспроизвести условие (я тоже пробовал режим совместимости).

Очевидно, что show / hide нацелен на селектор 'ID', но я не могу не задуматься об этом периоде в имени элемента управления.

Есть ли известные проблемы?- или, может быть, .change проблематичен, а переключатель никогда не вызывается:

$(window).load(function() {
    toggleChooseWebinarSubmit();
    $("#ChooseWebinar_UpcomingWebinarId").change(function() {
        if ($(this).val()) {
            $("#ChooseWebinar_RecordedWebinarId").val("");
        }
        toggleChooseWebinarSubmit();
    });
    $("#ChooseWebinar_RecordedWebinarId").change(function() {
        if ($(this).val()) {
            $("#ChooseWebinar_UpcomingWebinarId").val("");
        }
        toggleChooseWebinarSubmit();
    });
});

thx

Ответы [ 2 ]

1 голос
/ 16 апреля 2010

Атрибут input name является cdata, что означает, что в него может входить любой символ, который может входить в документ HTML. . безусловно допустимо.

Единственная смутно значимая проблема, о которой я могу подумать, это то, что Opera не помещает «ранее запомненные» значения обратно в форму (когда вы входите на страницу через back / forward, но bfcache не работает), пока не будет выполнено действие по умолчанию окно загрузки, которое происходит сразу после загрузки. IE помещает запомненные значения после загрузки содержимого DOM; другие браузеры вставляют их непосредственно при разборе их элементов. Поэтому, если вы хотите, чтобы скрытность кнопки была максимально точной во время процесса загрузки, вы должны выполнить проверку toggleChooseWebinarSubmit один раз сразу, один раз на готовом документе и один раз на 0-тайм-ауте сразу после загрузки. (Большинство людей не беспокоятся обо всем этом. Поведение Opera можно считать ошибкой.)

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

0 голосов
/ 13 мая 2014

Если вы попытаетесь прочитать значение Input на стороне сервера, точка будет автоматически заменена подчеркиванием.

Например

<form action="/dot.php">
<input type="text" name="a.b" value="c">
</form>

Результат с этим запросом:

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