У меня есть страница с двумя формулами одна. Каждый из них имеет свою собственную форму со входом и т. Д. Они оба называют одну и ту же функцию Javascript на клавиатуре.2 Формы, вызывающие одну и ту же функцию Javascript?
Только первый работает, я понимаю, почему, но я не могу найти разрешение, я слишком новичок в Javascript, чтобы узнать, как решить эту проблему. Я не могу сильно изменить структуру JS-файла, поскольку другие уравнения на других страницах зависят от этой настройки.
Есть ли обходной путь?
Укороченный HTML:
<div id="formula">
<p>To find ρ<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 Φ:</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;
}
Я только что заметил ваше редактирование, работая через него. 1 минута :) – null