2013-02-18 78 views
0

我使用msDropDown 3.3我選擇的形式是這樣的:使用MsDropDown與jQuery驗證引擎

 <tr><td>Valutanem *</td><td><select name="valutanem" id="valutanem" style="width:100%;" class="validate[required]" onchange="getvaluta($('#valutanem option:selected').val());"> 
<option value='0'>Change</option>  
<option value='HUF'>HUF</option> 
    <option value='EUR'>EUR</option> 
    </td></tr> 

<script> 

$(document).ready(function() { 


var valutanemDropdown = $("#valutanem").msDropdown().data("dd"); 

}); 

</script> 

下面是該項目的主頁:

http://www.marghoobsuleman.com/jquery-image-dropdown

而且我想使用jQuery驗證引擎確保選擇了某個東西!

該文檔說,只需添加class="validate[required]"選擇,但它不工作!爲什麼?

驗證引擎可以在這裏找到:

https://github.com/posabsolute/jQuery-Validation-Engine

回答

0
  This is because the select element is being wrapped by a div with the class 
    "ddOutOfVision" which has overflow:hidden which makes 
    the validation error to not be visible. 

      In order to fix that you can simply do this in javascript: 

      if ($('#valutanem').length > 0) { 


      if ($("#valutanem").hasClass('validate[required]')) 
      { 
      $("#valutanem_msdd").addClass('validate[required]') 

      var element = document.getElementById("valutanem_msdd") 

    // need to clone the element because IE does not allow to set the type 
    //only if it is a newly created element 
      var newObject = element.cloneNode(true); 
      newObject.type = "ms-dropdown-source"; 

      element.parentNode.replaceChild(newObject,element) 
      } 



     $.valHooks['ms-dropdown-source'] = { 
      get: function (el) { 
      element_id = $.trim($(el).attr('id').split('_msdd')[0]) 
      return $("#"+element_id).val(); 
      }, 
      set: function (el, val) { 
      element_id = $.trim($(el).attr('id').split('_msdd')[0]) 
      return $("#"+element_id).val(val); 
      } 
     }; 

    } 


     tested with Chrome, Firefox, IE6, IE7 and IE8 and works. NOt sure about other browsers 
Sorry if the identation is wrong. I am not very used to Markdown