在不提交表单的情况下获取HTML表单中的字段值


getting a field value in html form without submitting the form

我想问是否有可能从HTML表单中获得值而不提交表单?我不能得到这个工作在HTML或php,或者也许我错过了一些东西。请帮助。请看下面我的工作代码:

<FORM  name="myForm" action="confirmsold.php" method="post" onsubmit="return validateFormLay()">
    <table border=0 width="550" cellspacing=1 cellpadding=3 bgcolor="#353535" align="center">
<tr>
        <td bgcolor="#ffffff">Price Basis:</td>
        <td bgcolor="#ffffff">
        <?php
        $connect = mysqli_connect("localhost","root","ilovegym") or die(mysqli_connect_error());
        mysqli_select_db($connect, "laborsa") or die(mysqli_error());
        $sql = "SELECT Cash_Price,3months,6months,12months,18months FROM itemmaster where Item_Number='".$_SESSION['ITEM#']."'";
        $result = mysqli_query($connect,$sql);
        echo "<select name='basis'>";
        while ($row = mysqli_fetch_array($result)) {
        echo "<option value='" . $row['Cash_Price'] ."'>" . $row['Cash_Price'] ." - ".CashPrice."</option><option value='" . $row['3months'] ."'>" . $row['3months'] ." - ".ThreeMonths."</option><option value='" . $row['6months'] ."'>" . $row['6months'] ." - ".SixMonths."</option><option value='" . $row['12months'] ."'>" . $row['12months'] ." - ".TwelveMonths."</option><option value='" . $row['18months'] ."'>" . $row['18months'] ." - ".EighteenMonths."</option>";
        }
        echo "</select>";
        ?>  
        </td>
    </tr>
    <tr>
        <td bgcolor="#ffffff">Downpayment:</td>
        <td bgcolor="#ffffff"><INPUT type="TEXT" name="downpayment" size="12" maxlength="11" onkeypress="if ( isNaN( String.fromCharCode(event.keyCode) )) return false;"></INPUT></td>
    </tr>
    <tr>
        <td bgcolor="#ffffff">Balance:</td>
        <td bgcolor="#ffffff"><INPUT type="TEXT" name="laybalance" size="12" maxlength="11" onkeypress="if ( isNaN( String.fromCharCode(event.keyCode) )) return false;"></INPUT></td>
    </tr>

正如你所看到的,我需要从下拉选择一个付款基础,然后我将输入首付款。如何让余额栏自动显示余额?我只需要减去基本首付款,差额将放在余额栏。

请帮助任何人。谢谢你。

客户端vs服务器端

PHP完全在服务器端工作——如果不单独使用PHP提交表单,就无法获得输入元素的值。然而,您可以使用Javascript来实现这一点——它在客户端而不是服务器端运行——它在用户的计算机上执行,而不是在服务器上。这意味着它可以在它们在页面上时运行。Javascript可以为您获取表单元素的值。

Javascript代码

就像PHP需要name属性来确定哪个输入字段包含什么信息一样,Javascript需要id属性来获取输入字段的值。首先,下面是HTML代码:

<input type="text" id="myAwesomeIdName">

现在,您需要"获取"元素—这将返回HTML元素作为Javascript可以使用的对象。这可以使用函数document.getElementById(id)来完成,其中id是HTML元素的id。例子:

document.getElementById("myAwesomeIdName")

我们现在需要做的就是获取输入的value属性——这是这样做的:

document.getElementById("myAwesomeIdName").value;

返回输入框的值

把它放在一起

下面的代码会弹出一个警告,显示输入框的内容:

<input type="text" id="myAwesomeIdName"><br><button onclick="alert(document.getElementById('myAwesomeIdName').value)">Show Value</button>

需要Javascript。给三个元素(<select>, <input> 1和<input> 2)也一个id="yourid",写你的javascript代码会更舒服。

让第二个<input>字段read-only作为计算结果,而不是用户输入的值。

用javascript编写函数,并让函数在输入首付款时执行,例如oninput=mycode()。但是,当用户更改<select>,例如onchange=mycode()时,也要执行该函数。

javascript函数执行此操作(对不起,没有代码,只有过程…)

  • 获取用户选择的<select>事件的值

  • 获取第一个<input>字段的值

  • 减去这些值并将结果写入第二个只读<input>字段

一些注意事项:

  • 最好让第一个<option> </option>显示"选择您的方法"或类似的东西,并将零值附加到它。然后可以确定该功能将由用户触发。

  • 您使用的<input>元素是不正确的。它不应该有结束标签。据我所知,</input>是不正确的html

  • 有点离题,但<td bgcolor="#fff">更好的可以是<td style="background:#fff">

当值OK时,用户可以提交表单。