我正在重新张贴这篇文章,试图在我的问题中更加具体。我正在尝试将这里的计算器结合起来:http://www.nhpta.com/over-tax-calculator.html。
我希望计算按钮足够智能,以便知道两个输入字段中的一个是否输入了值,然后执行两个JS函数之一,Calculate或Calculate2。如果两个字段都输入了值,我希望它代替按钮抛出错误。这是我的概念代码,我不知道如何定义php变量,也不知道如何告诉它查看每个输入字段并确定是否输入了值。还不确定打印是否正确?
<?php
$input_B = "form field named input_B";
$input_C = "form field named input_C";
if($input_B == 'has a value' && $input_C == 'has no value')
{
print ' <P><INPUT TYPE="button" VALUE="Calculate" name="AddButton" onClick="Calculate(this.form.input_A.value, this.form.input_B.value, this.form.input_C.value, this.form)"></P>';
}
elseif($input_C == 'has a value' && input_B == 'has no value' )
{
print ' <P><INPUT TYPE="button" VALUE="Calculate" name="AddButton" onClick="Calculate2(this.form.input_D.value, this.form.input_E.value, this.form.input_F.value, this.form)"></P>';
}
elseif ($input_C == 'has a value' && input_B == 'has a value')
{
print ' Please choose only one field to fill in';
}
else
{
print ' <P><INPUT TYPE="button" VALUE="Calculate" name="AddButton" onClick="Calculate(this.form.input_A.value, this.form.input_B.value, this.form.input_C.value, this.form)"></P>';
} // End if/else if
?>
答案 0 :(得分:0)
第一个if语句应该像这样重写:
if(($input_B != "") && ($input_C == ""))
然后其他人的逻辑是相同的
答案 1 :(得分:0)
只要两个输入字段具有(唯一!)ID,就可以执行以下操作:
var field0 = document.getElementById("field0id").value;
var field1 = document.getElementById("field1id").value;
if(field0 === ""){
if(field1 !== ""){
calculate();
}else{
//error
}
}elseif(field1 === ""){
calculate2();
}else{
//error
}
答案 2 :(得分:0)
首先,你不需要为此服务器端做任何事情(这就是PHP运行的地方)。而是使用JavaScript。它看起来应该是这样的:(请记住,这是使用jQuery,这是一个javascript库。你可以学习jQuery here。)
<label for="input1">Input 1</label>
<input type="text" name="input1" id="input1" /><br />
<label for="input2">Input 2</label>
<input type="text" name="input2" id="input2" /><br />
<input type="submit" value="Submit" id="submit" onclick="calculate();" <!-- you only need the onclick attribute if you're not using jQuery --> />
编辑:修改了功能以执行问题中定义的逻辑
<!-- pseudo-code with jQuery -->
<script language="javascript" type="text/javascript">
$("#submit").on('click', function() {
var input1Val = $("#input1").val();
var input2Val = $("#input2").val();
if (input1Val != "" && input2Val != "") {
alert("You may only enter a value in one input field.");
} else if (input1Val != "") {
calcFunc1(input1Val);
} else if (input2Val != "") {
calcFunc2(input2Val);
} else {
alert("You must enter a value in one of the input fields.");
}
});
</script>
<!-- pseudo-code with straight javascript -->
<script language="javascript" type="text/javascript">
function calculate() {
var input1Val = document.getElementById("input1").value;
var input2Val = document.getElementById("input1").value;
if (input1Val != "" && input2Val != "") {
alert("You may only enter a value in one input field.");
} else if (input1Val != "") {
calcFunc1(input1Val);
} else if (input2Val != "") {
calcFunc2(input2Val);
} else {
alert("You must enter a value in one of the input fields.");
}
}
</script>