亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

我只能獲取文本輸入值 1 次

我只能獲取文本輸入值 1 次

holdtom 2023-12-14 16:03:32
我有一個有 4 個輸入的表格。當用戶單擊按鈕時,我需要獲取此表單輸入的值。我使用以下代碼。但僅在頁面加載后第一次返回文本輸入的值。下拉輸入的值第二次正確返回,但該函數對于文本輸入值返回 null。<html>    <head>        <meta charset="utf-8"> <!-- ???? ????? ????? ???? ??? ?? ???? ??? -->    </head>        <body>            <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>                                        <script type="text/javascript">                            function getFormValues(){                var numberOfPeyments = document.forms["insuranceData"]["numberOfPeyments"].value;                var totalPrice = document.forms["insuranceData"]["totalPrice"].value;                var prePayment = document.forms["insuranceData"]["prePayment"].value;                    return [numberOfPeyments,totalPrice,prePayment,];                }                                           }        </script>                       </body></html>
查看完整描述

2 回答

?
精慕HU

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>


查看完整回答
反對 回復 2023-12-14
?
翻翻過去那場雪

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>



查看完整回答
反對 回復 2023-12-14
  • 2 回答
  • 0 關注
  • 183 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號