确定输入字段是否有值的方法

时间:2012-08-03 13:56:26

标签: php javascript

我正在重新张贴这篇文章,试图在我的问题中更加具体。我正在尝试将这里的计算器结合起来: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
?> 

3 个答案:

答案 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>