繁体   English   中英

提交前如何获取输入值

[英]How to retrieve input value before submit

提交之前,我必须检索三个输入值,以便根据这些框中的信息使用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)。

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

您需要将变量设置为全局变量以在外部访问它。由于在更改中声明了变量,因此变量的范围仅保留在更改函数内。 因此,在外部change事件中声明变量。如下所示:

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

您可以在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>

您需要对构造的网址进行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代码(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

您需要使用上一个所需的输入标签来执行此操作。 假设您想要数据到第三个输入标签,那么您需要使用onkeyup =“ myFunction()”在第三个输入标签中调用您的自定义函数

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM