2012-04-17 66 views
1

我想弄清楚有多个链接和1弹出FancyBox窗体的方法。当用户点击其中一个国家时,我希望在我的下拉菜单中选择该国家/地区。除非我无法弄清楚如何选择下拉列表中的值,否则一切都很好。谁能帮我这个?先谢谢你 :)。单个FancyBox窗体与多个链接

<script type="text/javascript"> 
jQuery(document).ready(function() { 

$("a.country-form").fancybox({ 
     'scrolling' : 'no', 
       'titleShow' : false, 
       'onClosed' : function() { 
      $("#country_error").hide(); 
     }  
    }); 

    $("#country_form").bind("submit", function() { 

     if ($("#country_country").val() == 0) { 
      $("#country_error").show(); 
      $.fancybox.resize(); 
      return false; 
     } 

     $.fancybox.showActivity(); 

     $.ajax({ 
      type : "POST", 
      cache : false, 
      url  : "process.php", 
      data : $("#country_form").serializeArray(), 
      success: function(data) { 
       $.fancybox(data); 
      } 
     }); 

     return false; 
    }); 
} 
</script> 

<a class="country-form" href="#country_form" >Submit textbook (Canada)</a> 
<a class="country-form" href="#country_form" >Submit textbook (United States)</a> 
<a class="country-form" href="#country_form" >Submit textbook (United Kingdom)</a> 

<div style="display:none"> 
<form id="country_form" name="country_form" method="post" action=""> 
<p id="country_error">* There was a problem with your submission.</p> 
<h1>Submit textbook in (COUNTRY HERE)</h1> 
<label for="country">Country: </label> 
<select name="country" id="country_country"> 
<option value="0">Country...</option> 
<option value=1>Canada</option> 
<option value=2>United States</option> 
<option value=3>United Kingdom</option> 
</div> 

回答

2

组rel属性的链接

<a class="country-form" rel='1' href="#country_form" >Submit textbook (Canada)</a> 
<a class="country-form" rel='2' href="#country_form" >Submit textbook (United States)</a> 
<a class="country-form" rel='3' href="#country_form" >Submit textbook (United Kingdom)</a> 

然后尝试

$("a.country-form").fancybox({ 
     'scrolling' : 'no', 
     'onStart' : function(){ 
       $("#country_country").val($(this).attr('rel')); 
      }, 
       'titleShow' : false, 
       'onClosed' : function() { 
      $("#country_error").hide(); 
     }  
    }); 
+0

没错。你打败了我,@crazyphoton。你也可以使用'id'而不是'rel'。我还会将选择下拉值更改为有意义的值,如'ca','us'和'uk',而不是1,2和3. – 2012-04-17 03:15:30

+0

是的,id也可以正常工作!但是,将id设置为1,2和3是一个坏主意。因此,它应该是id =“country-form-link-1”,id =“country-form-link-2”等。你必须解析它得到1,2和3. rel似乎更简单:)并且是的,除非数据库使用数字作为外键,否则我们可能会更容易。 – crazyphoton 2012-04-17 03:39:56

+1

所有优点,@crazyphoton。还有另一种选择,这可能比这些想法更好:使用jQuery.data。当然,这将涉及在三个锚上设置适当数据的额外步骤,但这实际上可能是一件好事。无论如何,好的解决方案! – 2012-04-17 05:32:26