Вопрос по select
Доброго времени суток дамы и господа. Подскажите пожалуйста как получить текст элемента option, если он динамически изменяется.
Есть форма: <input type="hidden" name="ctl00$ContentPlaceHolder1$SignatureValueHF" id="ctl00_ContentPlaceHolder1_SignatureValueHF" /> <input type="hidden" name="ctl00$ContentPlaceHolder1$SignatureTypeHF" id="ctl00_ContentPlaceHolder1_SignatureTypeHF" /> <span style="font-family: Tahoma"><span style="font-size: 11pt;">Выберите сертификат подписи</span> <hr width="50px" align="left" /> <div class="controlLayout"> <select size="2" name="ctl00$ContentPlaceHolder1$CertListBox" id="ctl00_ContentPlaceHolder1_CertListBox" style="border-color:#F73F08;border-width:1px;border-style:Solid;height:30px;width:410px;resize: vertical;"> </select> <p align="right">Наименование организации: <input type="text" name="Orgname" size="50" maxlength="50" value="ООО Ромашка"></p> <p align="right">Фамилия:<input type="text" name="LastName" size="50" maxlength="50" value="Иванов"></p> <p align="right">Имя: <input type="text" name="FirstName" size="50" maxlength="50" value="Иван"></p> Нужно сделать кнопку Выбрать (как сделать саму кнопку я знаю), какой параметр написать в onclick если мне надо разобрать на составляющие полный текст значений сертификата и раскидать их по полям в input. Никак не могу понять, как при помощи КриптоПРО ЭЦП Browser Plugin, автоматически заполнить поля наименование организации, фамилия и имя из сертификата ЭЦП. Подскажите пожалуйста на примере 1-ой строки например ИМЯ, и я дальше все сделаю. |
Добавлю, сама функция уже описана:
function FillCertList(lstId, BrowserName) { var oStore = ObjCreator("CAPICOM.store", BrowserName); if (!oStore) { alert("store failed"); return; } try { oStore.Open(); } catch (e) { alert("Ошибка при открытии хранилища: " + GetErrorMessage(e)); return; } var certCnt = oStore.Certificates.Count; var lst = document.getElementById(lstId); for (var i = 1; i <= certCnt; i++) { var cert; try { cert = oStore.Certificates.Item(i); } catch (ex) { alert("Ошибка при перечислении сертификатов: " + GetErrorMessage(ex)); return; } var oOpt = document.createElement("OPTION"); try { oOpt.text = cert.SubjectName; } catch (e) { alert("Ошибка при получении свойства SubjectName: " + GetErrorMessage(e)); } try { oOpt.value = cert.Thumbprint; } catch (e) { alert("Ошибка при получении свойства Thumbprint: " + GetErrorMessage(e)); } lst.options.add(oOpt); } oStore.Close(); } Меня интерисует поле SubjectName: SubjectName: CN=ФИО, T=Должность, OU=Отдел, O=Организация, E=email, S=Город, L=область, C=RU, INN=6312000000, OGRN=Огрн, STREET="улица, 21/36, офис 21", UnstructuredName="КПП=631901001" Знаю, что выдернуть их можно при помощи oStore.Certificates.Item(i); но как это сделать я не понимаю.... Собственно задача, выдернуть из выбранного сертификата поля по полочкам и раскидать визуаьльно их в input |
Полный код формы:
<form> <input type="hidden" name="ctl00$ContentPlaceHolder1$SignatureValueHF" id="ctl00_ContentPlaceHolder1_SignatureValueHF" /> <input type="hidden" name="ctl00$ContentPlaceHolder1$SignatureTypeHF" id="ctl00_ContentPlaceHolder1_SignatureTypeHF" /> <span style="font-family: Tahoma"><span style="font-size: 11pt;">Выберите сертификат подписи</span> <hr width="50px" align="left" /> <div class="controlLayout"> <select size="1" name="ctl00$ContentPlaceHolder1$CertListBox" id="ctl00_ContentPlaceHolder1_CertListBox" style="border-color:#F73F08; border-width:1px;border-style:Solid;height:30px;width:410px;resize: vertical;"> </select> <input type="button" value="Заполнить" onClick=""> </div> <h3>Шаг 1.</h3> <p align="right">Заявитель: <input type="text" name="Orgname" size="50" maxlength="50" value="ООО Ромашка"></p> <p align="right">ФИО заявителя:<input type="text" name="CN" size="50" maxlength="50" value="Иванов Иван Иванович"></p> <p align="right">Юр.адрес: <input type="text" name="UrAdress" size="50" maxlength="50" value="123456, Россия, Москва, ул. Советская, 1"></p> <p align="right">Почтовый адрес: <input type="text" name="PostAdress" size="50" maxlength="5" value="123456, Россия, Москва, а/я 12345"></p> <p align="right">ИНН: <input type="text" name="INN" size="10" maxlength="10" value="7711111111"></p> <p align="right">КПП: <input type="text" name="KPP" size="10" maxlength="10" value="770101001"></p> <p align="right">E-mail: <input type="text" name="email" size="50" maxlength="50" value="ivanov@mail.ru"></p> <p align="right">Телефон: <input type="text" name="phone" size="11" maxlength="11" value="+7 (495)1234567"></p> <p align="right">Контактное лицо: <input type="text" name="contactname" size="50" maxlength="50" value="Петров Петр Петрович"></p> </form> Когда пишу более менее сам понимать начинаю :))) Задача, определить, какой выбран сертификат, получить из него строку SubjectName, из этой строки, выбрать определенные данные и подставить их в значение value в инпутах... |
Цитата:
<!DOCTYPE html> <html> <head> <!-- <script src="http://code.jquery.com/jquery-latest.js"></script> <link rel="stylesheet" type="text/css" href="tmp.css" /> --> <style type="text/css"> </style> <script type="text/javascript"> function test() { var o=document.getElementById('test'); alert(o.options[o.selectedIndex].innerHTML); }; </script> </head> <body> <select id='test'> <option></option> <option>Item 1</option> <option>Item 2</option> <option>Item 3</option> </select> <button onclick='test();'>getTextOption</button> </body> </html> |
Часовой пояс GMT +3, время: 02:13. |