Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用jquery从HTML提交数据_Javascript_Jquery - Fatal编程技术网

Javascript 如何使用jquery从HTML提交数据

Javascript 如何使用jquery从HTML提交数据,javascript,jquery,Javascript,Jquery,这个问题可能不清楚,所以我会进一步解释。 我看到了一些页面,比如wordpress的新贴子标签,它们有 [input] x tag | x tag | x tag 或者在你发布图片时在Facebook上留言 当您输入一个标记并按enter键时,一个新标记将插入到页面中的to元素中 我不太明白你怎么能把它解析出来然后提交给表单 如果有人知道,请给我一个想法 谢谢如果我没弄错的话,你说的是在“引擎盖下”发送基于AJAX的post请求,并在同一页面上获取“动态反射” 如果是这样的话,实际上不

这个问题可能不清楚,所以我会进一步解释。 我看到了一些页面,比如wordpress的新贴子标签,它们有

[input] 
x tag |  x tag  |  x tag
或者在你发布图片时在Facebook上留言

当您输入一个标记并按enter键时,一个新标记将插入到页面中的to元素中

我不太明白你怎么能把它解析出来然后提交给表单

如果有人知道,请给我一个想法


谢谢

如果我没弄错的话,你说的是在“引擎盖下”发送基于AJAX的post请求,并在同一页面上获取“动态反射”

如果是这样的话,实际上不仅仅是向服务器提交数据

这是一幅大图:

您需要一个javascript,该javascript加载到具有要提交的表单的页面中

在该脚本中,您需要定义将触发基于AJAX的post请求的事件。基本上,当特定字段中的内容刚刚更改时,您会喜欢触发这样的事件(即onChange事件)

然后可以使用如下脚本:

$.ajax
 ({
     type: 'POST',
        cache: false,
        async: false,
        timeout: 10000,
        url : '/path/to/your/serverside/function',
        dataType : 'json',
        data:
        {
              'tag' : //whatever you want to be used as the tag
        },
        success : function(message)
        {
            //this will be called when this post was successfully been carried out.
            //you should update the view (the same page) here using some jQuery script.
            //such as : $('#tag').html(message.tag);
        },
        error : function(message) 
        { 
            //this is for displaying error messages (perhaps due to networking problems?)
        }
 });
因为有很多东西要写。我建议你把你完成的东西都贴在这里,这样我们可以检查一下

至少从我的角度来看,这个场景需要以下知识才能使一切正常(尽管您可以选择使用较少的技术):

onChange事件已触发
|
|
jQuery=====发送JSON格式的标记信息======>服务器端函数
|
|
解码JSON标记信息
|
|
进程(是否将其保存到数据库?)
|
|
对反馈信息进行编码
|

jQuery回调函数如果我没有弄错的话,你说的是在“幕后”发送基于AJAX的post请求,并在同一页面上获取“动态反射”

如果是这样的话,实际上不仅仅是向服务器提交数据

这是一幅大图:

您需要一个javascript,该javascript加载到具有要提交的表单的页面中

在该脚本中,您需要定义将触发基于AJAX的post请求的事件。基本上,当特定字段中的内容刚刚更改时,您会喜欢触发这样的事件(即onChange事件)

然后可以使用如下脚本:

$.ajax
 ({
     type: 'POST',
        cache: false,
        async: false,
        timeout: 10000,
        url : '/path/to/your/serverside/function',
        dataType : 'json',
        data:
        {
              'tag' : //whatever you want to be used as the tag
        },
        success : function(message)
        {
            //this will be called when this post was successfully been carried out.
            //you should update the view (the same page) here using some jQuery script.
            //such as : $('#tag').html(message.tag);
        },
        error : function(message) 
        { 
            //this is for displaying error messages (perhaps due to networking problems?)
        }
 });
因为有很多东西要写。我建议你把你完成的东西都贴在这里,这样我们可以检查一下

至少从我的角度来看,这个场景需要以下知识才能使一切正常(尽管您可以选择使用较少的技术):

onChange事件已触发
|
|
jQuery=====发送JSON格式的标记信息======>服务器端函数
|
|
解码JSON标记信息
|
|
进程(是否将其保存到数据库?)
|
|
对反馈信息进行编码
|

jQuery回调函数一种方法是跟踪添加到隐藏表单字段中的标记,但实际上使用div或span或任何您想要的UI显示。在facebook的例子中,我想象他们正在做一些类似的事情,尽管我猜他们实际上可能在动态添加表单元素。原谅那些讨厌的代码/css-只是把它们扔在一起。如果您添加标记,然后点击submit,您将看到所有值都存在的查询字符串

<!doctype html> 
<html lang="en"> 
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js"></script> 
<script type="text/javascript">
$(function(){
    $("#btnSuggest").click(function(){
        var $tagSuggest = $("#tagSuggest");
        if($tagSuggest.val() != "")
            AddTag($tagSuggest.val());
    });

    $("#tagSuggest").keyup(function(e){
        if(e.keyCode == 13 && $(this).val() != "")
            AddTag($(this).val());
    });
});

function AddTag(tag){
    $("<div>").text(tag).appendTo("#tags").click(function(){
        $(this).remove();
        UpdateTags();
    }).hover(function(){
        $(this).addClass("over");
    },function(){
        $(this).removeClass("over");    
    });

    UpdateTags();
}

function UpdateTags(){
    var allTags = "";   

    $("#tags div").each(function(){
        allTags += "," + $(this).text();
    });

    $("#hidTags").val(allTags.substring(1));
    $("#tagSuggest").val("");
}
</script>
<style type="text/css">
.main
{
    width: 400px; 
    padding: 10px; 
    margin: auto; 
    border: 1px solid black; 
    background-color: #e6e6e6;
    height: 600px;
}

#tags div
{
    padding: 3px;
    border: 1px solid black; 
    background-color: #e6e6e6;
    margin: 3px;
    height: 15px;
    width: auto;
    float: left;
    cursor: pointer;

}

#tags div.over
{
    background-color: red;
}
</style>
</head>
<body>
<div class="main">
    <form action="" method="get">
        <input type="hidden" name="hidTags" id="hidTags">

        <textarea name="Wallpost" style="width: 390px; height: 100px;"></textarea>
        <br />
        <input type="text" id="tagSuggest" style="width: 280px;" />
        <input type="button" id="btnSuggest" value="Add Tag" style="float: right;"/>
        <br />      
        <input type="Submit" name="cmdSubmit" value="Share" style="float: right;"/> 
    </form>
    <div id="tags">

    </div>
</div>
</body>
</html>

$(函数(){
$(“#btnsugest”)。单击(函数(){
var$tagSuggest=$(“#tagSuggest”);
如果($tagSuggest.val()!=“”)
AddTag($tagSuggest.val());
});
$(“#tagSuggest”).keyup(函数(e){
如果(e.keyCode==13&&$(this.val()!=“”)
AddTag($(this.val());
});
});
函数AddTag(tag){
$(“”)。文本(标记)。附加到(“#标记”)。单击(函数(){
$(this.remove();
UpdateTags();
}).hover(函数(){
$(此).addClass(“超过”);
},函数(){
$(此).removeClass(“结束”);
});
UpdateTags();
}
函数UpdateTags(){
var-allTags=“”;
$(“#标记div”)。每个(函数(){
allTags+=”,“+$(this).text();
});
$(“#hidTags”).val(allTags.substring(1));
$(“#tagSuggest”).val(“”);
}
梅因先生
{
宽度:400px;
填充:10px;
保证金:自动;
边框:1px纯黑;
背景色:#e6;
高度:600px;
}
#标签组
{
填充:3倍;
边框:1px纯黑;
背景色:#e6;
保证金:3倍;
高度:15px;
宽度:自动;
浮动:左;
光标:指针;
}
#标签分区结束
{
背景色:红色;
}



一种方法是跟踪添加到隐藏表单字段中的标记,但实际显示时使用div或span或任何您想要的UI。在f的情况下