У меня есть HTA, у которого есть несколько полей <input type="text">
для ввода данных пользователями. Я пытаюсь передать эти данные в VBScript.
Вот HTML:
<div id="tableContent" name="tableContent" style="display:block;">
<table>
Broad Search
<tr>
<th>Date</th>
<th>Employee ID</th>
</tr>
<tr>
<td><input type="text" id="dateInput" name="dateIDInput" size="10"></td>
<td><input type="text" id="employeeIDInput" name="employeeIDInput" size="8"></td>
</tr>
</table>
<br/>
<table>
Specific Search
<tr>
<th>WO Base ID</th>
<th>Lot ID</th>
<th>Split ID</th>
<th>Sub ID</th>
<th>Operation</th>
</tr>
<tr>
<td><input type="text" id="woBaseIDInput" name="woBaseIDInput" value="" size="7"/></td>
<td><input type="text" id="woLotIDInput" name="woLotIDInput" value="" size="3"/></td>
<td><input type="text" id="woSplitIDInput" name="woSplitIDInput" value="" size="3"/></td>
<td><input type="text" id="woSubIDInput" name="woSubIDInput" value="" size="3"/></td>
<td><input type="text" id="woOpInput" name="woOpInput" value="" size="3"/></td>
</tr>
</table>
А вот VBScript:
'The following code retrieves the user supplied data.
Set woBaseIDInput = document.getElementById("woBaseIDInput")
Set woLotIDInput = document.getElementById("woLotIDInput")
Set woSplitIDInput = document.getElementById("woSplitIDInput")
Set woSubIDInput = document.getElementById("woSubIDInput")
Set woOpInput = document.getElementById("woOpInput")
Set dateInput = document.getElementById("dateInput")
Set employeeIDInput = document.getElementById("employeeIDInput")
Set outputTableElement = document.getElementById("outputTable")
'The following code will sanitize user input. Only numbers and characters are allowed.
stringsToCheck = Array(woBaseIDInput, woLotIDInput, woSplitIDInput, woSubIDInput, woOpInput, dateInput, employeeIDInput)
Set regExp = New RegExp
regExp.IgnoreCase = True
regExp.Global = True
regExp.Pattern = "[^a-z0-9]" 'Add here every character you don't consider as special character
woBaseIDClean = regExp.Replace(woBaseIDInput.innerHtml, "")
woLotIDClean = regExp.Replace(woLotIDInput.innerHtml, "")
woSplitIDClean = regExp.Replace(woSplitIDInput.innerHtml, "")
woSubIDClean = regExp.Replace(woSubIDInput.innerHtml, "")
woOpClean = regExp.Replace(woOpInput.innerHtml, "")
dateClean = regExp.Replace(dateInput.innerHtml, "")
employeeIDClean = regExp.Replace(employeeIDInput.innerHtml, "")
Проблема в woBaseIDClean
, и все его друзья (в нижней части блока кода VBS) не заполняются данными из полей HTML.
Я пытался использовать .innerHtml
и .value
, оба из которых не работают. Я заметил, что иногда кажется, что использование .innerHtml
устанавливает переменную для объекта?
.value
ничего не делает (я думаю).
Когда я использую .outerHtml
, я получаю весь элемент, теги и все, как и ожидалось.
Что я делаю не так? Как я могу получить предоставленные пользователем данные в мой VBScript?
Я хотел бы использовать данные, введенные на страницу HTML, в специально сформированном SQL-запросе.