javascript无法在php程序中运行

时间:2014-12-05 13:17:31

标签: javascript

我有一个用JavaScript编写的脚本,我需要在php中转换此验证。所以我目前的JavaScript验证不适用于PHP。任何的想法。这是代码。

function save_product()

    var productcombo = document.getElementById('productcombo').object;    
    var batchcombo = document.getElementById('batchcombo').object;    

    if(productcombo.GetTextValue()=="" )
    {
        alert("Select Product Name");
        productcombo.SetFocus();
    }  
    else if(batchcombo.GetTextValue()=="" )
    {
        alert("Select Product Batch No");
        batchcombo.SetFocus();
    }  
    else if(document.getElementById("qty").value=="" )
    {
        alert("Enter inward quantity");
        document.getElementById("qty").focus();
    }  
    else if(document.getElementById("qty").value!="" && (parseInt(document.getElementById("qty").value)>parseInt(document.getElementById("productqty").value)))
    {
        var pq=document.getElementById("productqty").value;
        alert("Enter quantity less than "+pq+"");
        document.getElementById("qty").focus();
    }  
    else
    { 
        var productgrid = nitobi.getGrid('productgrid');
        productgrid.insertRow();

        productgrid.setActiveRow(0,0);

        var rowno=productgrid.getSelectedRow();
        productgrid.getCellObject(0,2).setValue(document.getElementById("productsrno").value);
        productgrid.getCellObject(0,3).setValue(productcombo.GetTextValue());            
        productgrid.getCellObject(0,4).setValue(productcombo.GetSelectedRowValues()[6]);
        productgrid.getCellObject(0,5).setValue(batchcombo.GetTextValue());            
        productgrid.getCellObject(0,6).setValue(document.getElementById("qty").value);            
        productgrid.getCellObject(0,7).setValue(document.getElementById("boxes").value);            
        productgrid.getCellObject(0,8).setValue(document.getElementById("rate").value);            
        productgrid.getCellObject(0,9).setValue(document.getElementById("price").value);            
        get_resetproduct();
        productcombo.SetFocus();
        calTotal();
        calVat();
        document.getElementById("save1").disabled=false;
        document.getElementById("reset1").disabled=false;
        document.getElementById("delete1").disabled=true;
        check_user()
    }
}

当我点击提交按钮时,新的空白数据会保存在DB中,这是错误的。我需要验证才能工作。

2 个答案:

答案 0 :(得分:0)

我建议您使用jQuery Form Validator。编写自己的表单验证非常简单易用。

示例:

<form action="/registration" method="POST">
    <p>
        Name (4 characters minimum):
        <input name="user" data-validation="length" data-validation-length="min4">
    </p>
    <p>
        Year (yyyy-mm-dd):
        <input name="birth" data-validation="date" data-validation-format="yyyy-mm-dd">
    </p>
    <p>
        Website:
        <input name="website" data-validation="url">
    </p>
    <p>
        <input type="submit">
    </p>
</form>

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery-form-validator/2.1.47/jquery.form-validator.min.js"></script>
<script>
    $.validate();
</script>

和许多功能:

<!-- An answer has to be given -->
<input data-validation="required" type="text">

<!-- Max 100 characters -->
<input data-validation="length" data-validation-length="max100" type="text">

<!-- Minimum 20 characters -->
<input data-validation="length" data-validation-length="min20" type="text">

<!-- No less than 50 characters and no more than 200 characters -->
<input data-validation="length" data-validation-length="50-200" type="text">

<!-- Any numerical value -->
<input data-validation="number" type="text">

<!-- Only allowing float values -->
<input data-validation="number" data-validation-allowing="float" type="text">

<!-- Allowing float values and negative values -->
<input data-validation="number" data-validation-allowing="float,negative" type="text">

<!-- Validate float number with comma separated decimals -->
<input data-validation="number" data-validation-allowing="float" 
         data-validation-decimal-separator="," type="text">

<!-- Only allowing numbers from 1 to 100 -->
<input data-validation="number" data-validation-allowing="range[1;100]" type="text">

<!-- Only allowing numbers from -50 to 30 -->
<input data-validation="number" data-validation-allowing="range[-50;30],negative" type="text">

<!-- Only allowing numbers from 0.05 to 0.5 -->
<input data-validation="number" data-validation-allowing="range[0.05;0.5],float" type="text">

More

答案 1 :(得分:0)

你的程序总是(可能)有点javascript和一点点php。 如果您根本不想使用javascript,但我看不出任何原因,您应该只提交表单。 鉴于您的操作方法“获取”或“发布”,您将在PHP脚本中检索de数据。

这里的问题解释起来非常复杂。

关键是php正在你的服务器上运行,永远不会serFocus()或给你警报()。

您应该在javascript中进行表单验证,以改善您的功能。 如果你在某些情况下表单验证有一个秘密alghoritm并且你想在php中运行它,只需发送所有数据并使这个函数返回true或false,或者返回失败控件的输入。页面中的脚本将等待响应(jquery或任何其他),并将为用户提供正确的消息。 设置焦点,发出警报,高亮显示某些内容。

在大多数情况下,你无法将javascript翻译成PHP,这是没有意义的。