如何在提交之前检索输入值

时间:2014-03-03 12:22:37

标签: javascript php jquery

我必须在提交之前检索三个输入值,因此我可以使用ajax根据这些框中的信息填写表单。

我首先检查这三个框是否有使用此脚本的文本:

<script>
jQuery(document).ready(function () {
    var flag = false;
    jQuery(".validation").change(function () {
        flag = true;
        jQuery(".validation").each(function () {
            if (jQuery(this).val().trim() == "") {
                flag = false;
            }
        });
        if (flag==true) {
            var calle = jQuery("#calle").val();
            var municipio = jQuery("#municipio").val();
            var provincia = jQuery("#provincia").val();             

            var direccion = calle +","+ municipio +","+ provincia;
            direccion = direccion.replace(/\s/g,'+');
        }
    });
});
</script>

我需要的是,当这三个字段有值来检索该值时,我可以在提交之前通过PHP中的URL传递它(ajax可能吗?)

$url =  'http://maps.googleapis.com/maps/api/geocode/json?address='.$value .'&sensor=false';

$ value 将是脚本中的变量(direccion)。

如果您需要更多信息,请告诉我们。

4 个答案:

答案 0 :(得分:0)

您需要将变量设置为全局以便在外部访问它。在将变量声明为变量时,变量的范围仅保留在变更函数内。所以在变更事件之外声明变量。像这样:

  <script>
jQuery(document).ready(function () {
var flag = false;
var direccion="";//declare variable
jQuery(".validation").change(function () {
    flag = true;
    jQuery(".validation").each(function () {
        if (jQuery(this).val().trim() == "") {
            flag = false;
        }
    });
    if (flag==true) {
        var calle = jQuery("#calle").val();
        var municipio = jQuery("#municipio").val();
        var provincia = jQuery("#provincia").val();             

        direccion = calle +","+ municipio +","+ provincia;
        direccion = direccion.replace(/\s/g,'+');//define variable on every on change
     }
   });
});
</script>

答案 1 :(得分:0)

form上,您可以添加onsubmit属性,该属性将定义提交表单时要执行的操作。 例如:

<form method='GET' action='' onsubmit='doAjax();return false;'>
<input type='text' id='inp_name' value='hello'/>
</form>

<script>
function doAjax(){
    alert("this form won't be posted!");
    return false;
}
</script>

答案 2 :(得分:0)

你需要对构造的url进行ajax调用

 jQuery(document).ready(function () {
   var flag = false;
jQuery(".validation").change(function () {
    flag = true;
    var direccio="";
    jQuery(".validation").each(function () {
        if (jQuery(this).val().trim() == "") {
            flag = false;
        }
    });
    if (flag==true) {
        var calle = jQuery("#calle").val();
        var municipio = jQuery("#municipio").val();
        var provincia = jQuery("#provincia").val();             

        direccion = calle +","+ municipio +","+ provincia;
        direccion = direccion.replace(/\s/g,'+');
    }

    $.ajax({
       url: "target.php",
       data:{'value':direccion},
       success: function(response) {
          //process the data received from server script
       });
    });

});

PHP CODE(target.php):

   $value=$_POST['value'];
   $url =  'http://maps.googleapis.com/maps/api/geocode/json?address='.$value .'&sensor=false';
   //further processing of data at server end and finally echo the data to client

答案 3 :(得分:0)

您需要使用上一个所需的输入标记。假设您想要数据到第3个输入标记,那么您需要使用onkeyup =“myFunction()”在第3个输入标记中调用自定义函数

在myFunction()中,您可以检查字段是否已填充,还可以执行ajax将数据传输到服务器