2013-07-06 32 views
0

以下是Jquery Chosen插件的页面(和演示)。这非常方便。Jquery选择插件样式Ajax调用后丢失

http://harvesthq.github.io/chosen/


所以我的问题是,我使用的是2级输入形式收集位置信息。 第一个选择菜单是针对国家的。选择一个国家后,第二个输入字段仅显示该字段的国家选项。Neato!

这里是我的问题的现场演示。

http://globatum.com/admin/

你会发现,Ajax调用的作品,但一旦返回的第二场,造型丢失! =(

据插件

的选择菜单必须在一定的HTML框架内

<select data-placeholder="Select City" class="chzn-select" style="width:350px;" tabindex="2" name="city"> 
<? while($row=mysql_fetch_array($result)) { ?> 
<option class="active-result option" 
style="padding: 5px 0px 5px 0px; font-family:arial; font-size:12px;" 

><?=$row['city']?></option> 
<? } ?> 
</select> 

这在技术上应该工作,但没有。 任何线索,如何保持造型通话结束后?

这里是正在返回的PHP页面

<!--//---------------------------------+ 
// Developed by Roshan Bhattarai | 
// http://roshanbh.com.np   | 
// Contact for custom scripts  | 
// or implementation help.   | 
// [email protected]  | 
//---------------------------------+--> 
<? 
#### Roshan's Ajax dropdown code with php 
#### Copyright reserved to Roshan Bhattarai - [email protected] 
#### if you have any problem contact me at http://roshanbh.com.np 
#### fell free to visit my blog http://php-ajax-guru.blogspot.com 
?> 

<? $country = $_GET['country']; 
$link = mysql_connect("SNIP"); 
if (!$link) { 
    die('Could not connect: ' . mysql_error()); 
} 
mysql_select_db('SNIP'); 
$query="SELECT city FROM location WHERE country='$country' ORDER BY `city` ASC"; 
$result=mysql_query($query); 

?> 
<div class="x"> 
<br> 
<select data-placeholder="Select City" class="chzn-select" style="width:350px;" tabindex="2" name="city"> 
<? while($row=mysql_fetch_array($result)) { ?> 
<option class="active-result option"><?=$row['city']?></option> 
<? } ?> 
</select> 
</div> 
+0

后在正确的位置注意HTML元素被替换,所以你CSS样式停止工作 – raam86

+0

@ raam86有没有一种方法来刷新CSS的新魔法工作HTML? –

+0

CSS总是起着魔力。你新的元素不携带相同的类,等等'所以CSS不起作用 – raam86

回答

0

当您重新加载第二个列表时,是否尝试过触发liszt:updated事件?从DOCO

更新获选动态 如果您需要在您的选择字段更新选项,并要选择拿起变化,你需要触发“李斯特:更新”上的事件领域。 Chosen会根据更新的内容重新构建自己。

编辑:在回答关于在哪里把它的评论,我想你会需要修改getcity功能在文档的头部是这样的:

function getCity(country) { 
    var strURL="findCity.php?country="+ country; 
    var req = getXMLHTTP(); 
    if (req) { 
     req.onreadystatechange = function() { 
      if (req.readyState == 4) { 
       // only if "OK" 
       if (req.status == 200) {       
        document.getElementById('citydiv').innerHTML=req.responseText;      
        $("#citydiv select").trigger("liszt:updated"); 
        ///rest of function 

这应该在理论上触发事件在你取代城市div

+0

我不知道如何正确实施。我在文档中看到它,并与它混淆,但没有提出任何事情。 我已经添加了正在返回的php页面。我在那里还是在索引页面添加它? –

+0

试过了,没有bueno =( –

+0

我出来的想法然后 –

相关问题