gpt4 book ai didi

php - 2 个表单调用相同的 Javascript 函数?

转载 作者:行者123 更新时间:2023-11-28 02:02:52 26 4
gpt4 key购买 nike

我有一个页面,其中有两个公式。每个都有自己的表单和输入等。它们都在按键时调用相同的 Javascript 函数。

只有第一个有效,我有点明白为什么,但我找不到解决方案,我对 Javascript 太陌生,不知道如何解决这个问题。我无法大量更改 JS 文件的结构,因为其他页面上的其他方程取决于此设置。

有解决办法吗?

缩短的 HTML:

 <div id="formula">

<p>To find &rho;<sub>b</sub>:</p>
<form id="formula" name="formula">

<input type="hidden" id="formulaName" name="formulaName" value="porosityRhob"/>

<div>
<label>$\rho_{fl}$:</label>
<input type ="text" name="input" id="input" onkeyup="calculatePEFormula()"/>
</div>
<div>
<label>Result:</label>
<input type="text" id="result" name="result">
</div>

</form>
</div>

<br/>
<div id="formula">

<p>To find &Phi;:</p>
<form id="formula" name="formula">

<input type="hidden" id="formulaName" name="formulaName" value="porosityPhi"/>

<div>
<label>$\rho_{ma}$:</label>
<input type ="text" name="input" id="input" onkeyup="calculatePEFormula()"/>
</div>
<div>
<label>Result:</label>
<input type="text" id="result" name="result">
</div>

</form>
</div>

JS:

function PEFormula(result, formulaName){
this.result = result;
this.formulaName = formulaName;
}

function calculatePEFormula(){

var PEObject = new PEFormula($("#result"), $("#formulaName"));
var formulaName = $("#formulaName").val();

switch(formulaName){

case "porosityRhob" : PEObject.porosityRhoB();
break;
case "porosityPhi" : PEObject.porosityPhi();
break;
}
PEFormula.prototype.porosityPhi = function(){

var input = parseFloat($("#input").val());
//logic
return r;
}

最佳答案

HTML 属性 id 应该是唯一的

  1. <div id="formula">
  2. <form id="formula" name="formula">
  3. <input type="hidden" id="formulaName" name="formulaName" value="porosityRhob"/>
  4. <input type ="text" name="input" id="input" onkeyup="calculatePEFormula()"/>
  5. <input type="text" id="result" name="result">

尝试更改这些 id 而不是使用类

这是解决方案,将所有字段 id 更改为类,表单 id 应该不同,并将表单的参数 id 作为参数传递 onkeyup="calculatePEFormula('form#formula1')"onkeyup="calculatePEFormula('form#formula2')"现在在js中

function PEFormula(result, formulaName){
this.result = result;
this.formulaName = formulaName;
}

function calculatePEFormula(form_id){

var PEObject = new PEFormula($(form_id+" .result"), $(form_id+" .formulaName"));
var formulaName = $(form_id+" .formulaName").val();

switch(formulaName){

case "porosityRhob" : PEObject.porosityRhoB();
break;
case "porosityPhi" : PEObject.porosityPhi();
break;
}
PEFormula.prototype.porosityPhi = function(){

var input = parseFloat($(form_id+" .input").val()); //provide the form id here
//logic
return r;
}

关于php - 2 个表单调用相同的 Javascript 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18207829/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com