2012-03-15 37 views
0

我发现this jquery插件的依赖选择框。这现在工作,但我有大问题!当把这个提交表单不起作用,因为这个插件使用表单id和post/get数据使用json。原始演示HEREjQuery相关(从属)选择插件

问题e.x:

<div id="box"> 
    <form action="search.php" method="POST" > 
    <form id="example-1"> 
    <div class="field"> 

    <label for="name">state :</label> 

    <select name="stateID"> 

    <option value="">Choose State &raquo;</option> 
    <option value="MA">Massachusetts</option> 
    <option value="VT">Vermont</option> 
    </select> 
    </div> 
    <div class="field"> 
    <label for="name">Country :</label> 
    <select name="countyID"> 
    <option value="">Choose County &raquo;</option> 

    </select> 
    </div> 
    <div class="field"> 
    <label for="name">town :</label> 
    <select name="townID"> 
    <option value="">Choose Town &raquo;</option> 
    </select> 
    </div> 
    <div class="field"> 
    <label for="name">village :</label> 
    <select name="villageID"> 
    <option value="">Choose Village &raquo;</option> 
    </select> 
    </div> 
</form> 
</form> 
</div> 

如果我删除表单操作这个插件完美地工作,否则没有奏效。如何解决这个谢谢。

+0

你有一个随机的

标签内的只是漂浮在那里。删除标签。不要使用div class ='field',请考虑使用
标签并为其设计样式。 – Ohgodwhy 2012-03-15 22:16:02

+0

当所有的表单都在一个div中时,fieldset工作。我改变了我的问题!我有每个selectBox任何div(class = field)和labal。 – 2012-03-15 22:25:28

回答

0

为了详细说明我的评论,您可以捕获表单的提交并按照您的喜好进行操作。

$("form").submit(function(e){ 
    e.preventDefault(); //stop the default behavior 
    $.ajax({ 
    type: 'POST', //default is get, set to 'POST' if you want to post. 
    url: 'search.php', 
    success: function(data){ 
     //if our data was returned from our search file as json, then... 
     $("#element").html(data.a) //returns the a value from our json object 
     $("#element").html(data.b) //returns the b value from our json object 
     //etc 
    } 
    }); 
}); 

提交函数按照常规方式停止提交表单,并停止页面重新加载。然后我们使用ajax请求通过'POST'方法将我们的数据发送到我们的文件search.php。返回的数据通过一个对象发送,我们通过成功访问它:function(data)。然后,如果我们的数据是用JSON值返回的,那么我们可以使用data.a来获取一个值,或者使用data.b来获取我们的JSON字符串的b值。