【问题标题】:Can we call a java function from the html text-box?我们可以从 html 文本框中调用 java 函数吗?
【发布时间】:2012-03-19 22:14:54
【问题描述】:

我正在使用 jsp、mysql、ajax 和 netbeans 和 mysql 做一个 web 项目。 我有 3 个文本框,2 个用于获取用户的输入。第三个文本框应显示 2 个输入值的乘积。

如何做到这一点? 我应该进行 ajax 调用还是可以在 3 文本框中调用 java 函数。

代码是

<input type="text" value="" name="quantity"/>
</td><td><input type="text" value="" name="price"/>
</td><td><input type="text" value="" name="total"/>

在名为“total”的文本框的 value 属性中,我可以调用 java 函数吗? value="getTotal()" 之类的东西,但如果可以的话,我怎么能访问其他两个值。

否则我应该进行 ajax 调用吗?

【问题讨论】:

  • 您不能仅从没有 ajax 或其他网络请求的页面调用服务器上的 java 函数。
  • javajavascript 就像汽车到地毯一样!
  • 因为总 = 价格 * 数量我会在 JS 中实现它,但在提交时添加一个服务器端验证 - 只是为了确保没有人弄乱你的客户端代码。
  • @ViswanathanIyer 解决方案是什么
  • @kirilloid 解决方案是什么

标签: javascript mysql ajax jsp netbeans


【解决方案1】:

如果您的要求与您所要求的一样基本,您可以使用简单的 JavaScript 来完成。 将以下内容添加到您的脚本中

function doTheMath(){
 var quantity = document.getElementById("quantity").value;
 var price = document.getElementById("price").value;
 var product = parseInt(quantity, 10) * parseFloat(price);
 document.getElementById("total").value = product;

} 并将您的 html 更改为以下内容,以便在发生更改时调用 javascript 函数。

<input type="text" value="" id="quantity" onchange="doTheMath()"/> 

不建议对简单的数学进行服务器调用。

【讨论】:

    【解决方案2】:

    你应该使用 jQuery。使用 jQuery,您可以根据用户在其他字段中键入的内容动态设置文本框的值。我最近为我为客户做的一个购物篮实现了这个。 jQuery 也有一个非常容易使用的 .ajax() 方法。

    查看这些资源:

    http://docs.jquery.com/How_jQuery_Works

    http://api.jquery.com/category/ajax/

    抱歉,我没有时间编写编码响应。无论如何,希望这会有所帮助。

    【讨论】:

      【解决方案3】:

      你好朋友不需要去java函数...你可以做简单的客户端

        <td><input type="text" value="" name="quantity" onblur="Calculate()"/>
        </td><td><input type="text" value="" name="price" onblur="Calculate()"/>
        </td><td><input type="text" value="" name="total"/>
      
      
        <script type="text/javascript">
      
        function Calculate()
        {
      
             var txt1 = document.getElementById("quantity");
             var txt2 = document.getElementById("price");
             var txt3 = document.getElementById("total");
             if ((txt1.value != "") && (txt2.value != ""))
             {
                  txt3.value = parseInt(txt1.value) * parseInt(txt2.value); 
             }
      
        }
      
        </script>
      

      你好朋友还有一件事总文本框应该是只读的,或者你可以使用标签....

      谢谢

      【讨论】:

        【解决方案4】:
          <HTML>
          <HEAD>
         <TITLE></TITLE>
             <script type="text/javascript">
        
             function Calculate()
              {
        
               var txt1 = document.getElementById("FirstNo");
               var txt2 = document.getElementById("SecondNo");
               var txt3 = document.getElementById("Output");
               if ((txt1.value != "") && (txt2.value != ""))
               {
                    txt3.value = parseInt(txt1.value) * parseInt(txt2.value); 
               }
        
              }
        
            </script>
        
         <input id="FirstNo" type="text" value="" onblur="Calculate()" style="width:50px"/> * 
         <input id="SecondNo" type="text" value="" onblur="Calculate()" style="width:50px"/>
         <input id="Output" type="text" style="width:50px"/>
         </FORM>
         </BODY>
         </HTML>
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-08-18
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-02-14
          • 2022-07-07
          相关资源
          最近更新 更多