Установка переключателя, когда пользователь нажимает «input type =» file » - PullRequest
1 голос
/ 10 ноября 2010

Моя форма выглядит примерно так:

[ radio ] Use your current picture
[ radio ] Use the sites default

SELECT THIS ONE DYNAMICALLY --> [ radio ] Upload a picture from your computer
---------------- [BrowseButton]

Единственная проблема, связанная с этим, заключается в том, что когда пользователь нажимает либо на само поле ввода («----»), либо на кнопку «Обзор», соответствующий переключатель не становится выбранным (что ожидается). Я пытаюсь прикрепить события Javascript к полю, но, похоже, ничего не работает.

Не уверен, что это действительно имеет значение, но серверная часть - это .NET, и этот код используется для генерации поля:

<li>
    <asp:RadioButton ID="rbUpload" GroupName="avatar" runat="server" Text="Upload a new picture from your computer" />
    <asp:FileUpload ID="fileUpload" runat="server" /> Maximum file size: 4 MB.
    <asp:PlaceHolder ID="FileUploadMessages" runat="server">
</li>

Который выплевывает следующий HTML:

<li>
    <input type="radio" value="rbUpload" name="ctl00$ContentPlaceHolder$avatar" id="ctl00_ContentPlaceHolder_rbUpload"><label for="ctl00_ContentPlaceHolder_rbUpload">Upload a new picture from your computer</label>
    <input type="file" id="ctl00_ContentPlaceHolder_fileUpload" name="ctl00$ContentPlaceHolder$fileUpload"> Maximum file size: 4 MB.
</li>

Я знаю, что эти типы полей "только для чтения", но это не должно быть проблемой здесь ... верно? Я пытался прикрепить события jQuery, такие как .click, но, похоже, они не работают. Смотрите здесь:

$("#ctl00_ContentPlaceHolder_fileUpload").click(function() {
    $("#ctl00_ContentPlaceHolder_rbUpload").click(); // sets radio
})

Есть идеи?

1 Ответ

0 голосов
/ 10 ноября 2010

Используйте событие change, например:

$("#ctl00_ContentPlaceHolder_fileUpload").change(function() {
    $("#ctl00_ContentPlaceHolder_rbUpload").click(); // sets radio
})
...