2 回答

TA貢獻1845條經驗 獲得超8個贊
我不知道為什么你沒有得到任何值,document.forms但你可以通過使用來解決這個問題document.querySelector。
看看下面
function getFormValues() {
var numberOfPeyments = document.querySelector("[name=insuranceData] [name=numberOfPeyments]").value;
var totalPrice = document.querySelector("[name=insuranceData] [name=totalPrice]").value
var prePayment = document.querySelector("[name=insuranceData] [name=prePayment]").value
console.clear();
console.log([numberOfPeyments, totalPrice, prePayment, ])
return [numberOfPeyments, totalPrice, prePayment, ];
}
function checkInputs() {
insuranceParams = getFormValues();
if (insuranceParams[1] == "") {
alert("???? ?? ?? ???? ?? ???? ?????? ");
} else if (insuranceParams[2] == "") {
alert("???? ??? ?????? ?? ???? ?????? ");
} else {
if (parseInt(insuranceParams[1]) > parseInt(insuranceParams[2])) {
createPaymentsTable();
} else {
alert("???? ??? ?????? ????? ?? ???? ?? ?? ???? ????? ????!");
}
}
}
function createPaymentsTable() {
var insuranceParams = getFormValues();
var remindeValue = insuranceParams[1] - insuranceParams[2];
var ValueOfAnyPayments = remindeValue / insuranceParams[0];
document.getElementById("paymentsTableDiv").style.display = 'block';
for (i = 1; i <= parseInt(insuranceParams[0]); i++) {
var newRow = document.getElementById('paymentsTable').insertRow();
newRow.innerHTML = "<td>" + i + "</td>" +
"<td><input id='DEMO' dir='ltr' name='prePayment' type='text' size='10' value='" + ValueOfAnyPayments + "'/></td>" +
"<td>" + i + "</td>" +
"<td><input dir='rtl' name='prePayment' type='text' size='10'/></td>";
}
}
<form name="insuranceData">
total: <input name="totalPrice" type="text" size="10" />
<br/>
<br/> prePayment: <input name="prePayment" type="text" size="10" />
<br/>
<br/> peyments number:
<select name="numberOfPeyments">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
</select>
<br/>
<br/>
<input name="paymentsCalculat" value="?????? ?????" type="button" size="10" onClick="checkInputs();" />
<div id="paymentsTableDiv" style="display:none">
<table width="40%" align="center" dir="rtl" id="paymentsTable" style="text-align:center;">
<tr bgcolor="red">
<th>????? ???</th>
<th>???? ???</th>
<th>????? ??????</th>
<th>???????</th>
</tr>
</table>
</div>
</form>

TA貢獻2065條經驗 獲得超14個贊
通過捕獲 elements?document.getElementById("myForm").elements;
,您可以讀取表單的值。也不需要getFormValues()
從函數中第二次調用函數createPaymentsTable()
。getFormValues()
您可以在從函數調用時傳遞值checkInputs()
??纯聪旅娴钠危?/p>
<html>
<head>
? ? <meta charset="utf-8"> <!-- ???? ????? ????? ???? ??? ?? ???? ??? -->
</head>
<body>
? ? <form name="insuranceData" id="myForm">
? ? ? ? total: <input name="totalPrice" type="text" size="10" />
? ? ? ? <br />
? ? ? ? <br />
? ? ? ? prePayment: <input name="prePayment" type="text" size="10" />
? ? ? ? <br />
? ? ? ? <br />
? ? ? ? peyments number: <select name="numberOfPeyments">
? ? ? ? ? ? <option value="1">1</option>
? ? ? ? ? ? <option value="2">2</option>
? ? ? ? ? ? <option value="3">3</option>
? ? ? ? ? ? <option value="4">4</option>
? ? ? ? ? ? <option value="5">5</option>
? ? ? ? ? ? <option value="6">6</option>
? ? ? ? </select>
? ? ? ? <br />
? ? ? ? <br />
? ? ? ? <input name="paymentsCalculat" value="?????? ?????" type="button" size="10" onClick="checkInputs();" />
? ? ? ? <div id="paymentsTableDiv" style="display:none">
? ? ? ? ? ? <table width="40%" align="center" dir="rtl" id="paymentsTable" style="text-align:center;">
? ? ? ? ? ? ? ? <tr bgcolor="red">
? ? ? ? ? ? ? ? ? ? <th>????? ???</th>
? ? ? ? ? ? ? ? ? ? <th>???? ???</th>
? ? ? ? ? ? ? ? ? ? <th>????? ??????</th>
? ? ? ? ? ? ? ? ? ? <th>???????</th>
? ? ? ? ? ? ? ? </tr>
? ? ? ? ? ? </table>
? ? ? ? </div>
? ? </form>
? ? <script type="text/javascript">
? ? ? ? function getFormValues() {
? ? ? ? ? ? var fields = document.getElementById("myForm").elements;
? ? ? ? ? ? var numberOfPeyments = fields[0].value;
? ? ? ? ? ? var totalPrice = fields[1].value;
? ? ? ? ? ? var prePayment = fields[2].value;
? ? ? ? ? ? console.log(numberOfPeyments, totalPrice, prePayment);
? ? ? ? ? ? return [numberOfPeyments, totalPrice, prePayment];
? ? ? ? }
? ? ? ? function checkInputs() {
? ? ? ? ? ? var insuranceParams = getFormValues();
? ? ? ? ? ? if (insuranceParams[1] == "") {
? ? ? ? ? ? ? ? alert("???? ?? ?? ???? ?? ???? ?????? ");
? ? ? ? ? ? } else if (insuranceParams[2] == "") {
? ? ? ? ? ? ? ? alert("???? ??? ?????? ?? ???? ?????? ");
? ? ? ? ? ? } else {
? ? ? ? ? ? ? ? if (parseInt(insuranceParams[1]) > parseInt(insuranceParams[2])) {
? ? ? ? ? ? ? ? ? ? createPaymentsTable(insuranceParams);
? ? ? ? ? ? ? ? } else {
? ? ? ? ? ? ? ? ? ? alert("???? ??? ?????? ????? ?? ???? ?? ?? ???? ????? ????!");
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? function createPaymentsTable(insuranceParams) {
? ? ? ? ? ? // var insuranceParams = getFormValues();
? ? ? ? ? ? var remindeValue = insuranceParams[1] - insuranceParams[2];
? ? ? ? ? ? var ValueOfAnyPayments = remindeValue / insuranceParams[0];
? ? ? ? ? ? document.getElementById("paymentsTableDiv").style.display = 'block';
? ? ? ? ? ? for (i = 1; i <= parseInt(insuranceParams[0]); i++) {
? ? ? ? ? ? ? ? var newRow = document.getElementById('paymentsTable').insertRow();
? ? ? ? ? ? ? ? newRow.innerHTML = "<td>" + i + "</td>" +
? ? ? ? ? ? ? ? ? ? "<td><input id='DEMO' dir='ltr' name='prePayment' type='text' size='10' value='" + ValueOfAnyPayments + "'/></td>" +
? ? ? ? ? ? ? ? ? ? "<td>" + i + "</td>" +
? ? ? ? ? ? ? ? ? ? "<td><input dir='rtl' name='prePayment' type='text' size='10'/></td>";
? ? ? ? ? ? }
? ? ? ? }
? ? </script>
</body>
</html>
添加回答
舉報