0

我在标准表单中成功使用 Livevalidation。当我通过 JavaScript 在修改后的表单中使用验证时,它不会可靠工作。

它应该像这些说明一样工作:

<Input type="Ratio" value="1">: Validation for "Submit" not necessary
<Input type="Ratio" value="-1">: Validation necessary
<Input type="Ratio" value="-2">: Validation necessary

第一个问题:

  • 当我选择“值 -1”时,Livevalidation 不起作用
  • 当我选择“值 -2”时,Livevalidation 有效
  • 当我选择“值-1”(-2之后)Livevalidation作品

第二个问题:

  • 当我选择“值 1”时,我可以“提交”表格
  • 但....
  • 当我选择“值 -1”或“值 -2”并且 Livevalidation 处于活动状态时
  • 然后我选择“值 1”(不需要 Livevalidation)我不能“提交”表格

    <script type="text/javascript">
    function changeState(state) {
    
       var id = parseInt(state);
    
       if (id >= 0)
       {
            $('#new_delivery_address').hide("slow");
            $('#packstation').remove();
    
            // Livevalidation
            var title = new LiveValidation('title');
            var firstName = new LiveValidation('firstName');
            var lastName = new LiveValidation('lastName');
            var firm = new LiveValidation('firm');
            var street = new LiveValidation('street');
            var streetnumber = new LiveValidation('streetnumber');  
            var street2 = new LiveValidation('street2');        
            var plz = new LiveValidation('plz');    
            var city = new LiveValidation('city');  
            var tel = new LiveValidation('tel');
    
            title.destroy(true);
            firstName.destroy(true);
            lastName.destroy(true);
            firm.destroy(true);
            street.destroy(true);
            streetnumber.destroy(true);
            street2.destroy(true);
            plz.destroy(true);
            city.destroy(true);
            tel.destroy(true);
        }
       if (id == -2) 
       {
    
            // Code
            // Code
            // ...
    
            // Livevalidierung
            var title = new LiveValidation('title');
            var firstName = new LiveValidation('firstName');
            var lastName = new LiveValidation('lastName');
            var firm = new LiveValidation('firm');
            var street = new LiveValidation('street');
            var street2 = new LiveValidation('street2');        
            var plz = new LiveValidation('plz');    
            var city = new LiveValidation('city');  
            var tel = new LiveValidation('tel');    
    
            firstName.add( Validate.Presence);
            lastName.add( Validate.Presence);
            street.add(Validate.Presence);
            street2.add(Validate.Presence);
            plz.add(Validate.Presence);             
            plz.add(Validate.Numericality);
            plz.add(Validate.Length, { minimum: 4, maximum: 5 } );
            city.add(Validate.Presence);
            streetnumber.destroy(true);
       }
       if (id == -1)
       {
    
            // Code
            // Code
            // ...
    
            // Livevalidierung
            var title = new LiveValidation('title');
            var firstName = new LiveValidation('firstName');
            var lastName = new LiveValidation('lastName');
            var firm = new LiveValidation('firm');
            var street = new LiveValidation('street');
            var streetnumber = new LiveValidation('streetnumber');      
            var street2 = new LiveValidation('street2');        
            var plz = new LiveValidation('plz');    
            var city = new LiveValidation('city');  
            var tel = new LiveValidation('tel');    
    
            firstName.add( Validate.Presence);
            lastName.add( Validate.Presence);
            street.add(Validate.Presence);
            streetnumber.add(Validate.Presence);
            plz.add(Validate.Presence);             
            plz.add(Validate.Numericality);
            plz.add(Validate.Length, { minimum: 4, maximum: 5 } );
            city.add(Validate.Presence);
            street2.destroy(true);
       }
    }
    
    function 123 () {
        // Code
        // Code
        // ...
    }
    

4

1 回答 1

0

现在我找到了解决“第二个问题:....无法“提交”表格”的解决方案

我在 Addition 中使用参数disable(function)enable(function)

    <script type="text/javascript">
function changeState(state) {

   var id = parseInt(state);

   if (id >= 0)
   {
        $('#new_delivery_address').hide("slow");
        $('#packstation').remove();

        // Livevalidation
        var title = new LiveValidation('title');
        var firstName = new LiveValidation('firstName');
        var lastName = new LiveValidation('lastName');
        var firm = new LiveValidation('firm');
        var street = new LiveValidation('street');
        var streetnumber = new LiveValidation('streetnumber');      
        var street2 = new LiveValidation('street2');        
        var plz = new LiveValidation('plz');    
        var city = new LiveValidation('city');  
        var tel = new LiveValidation('tel');    

        title.destroy(true);
        firstName.destroy(true);
        lastName.destroy(true);
        firm.destroy(true);
        street.destroy(true);
        streetnumber.destroy(true);
        street2.destroy(true);
        plz.destroy(true);
        city.destroy(true);
        tel.destroy(true);

        title.disable(true);
        firstName.disable(true);
        lastName.disable(true);
        firm.disable(true);
        street.disable(true);
        streetnumber.disable(true);
        street2.disable(true);
        plz.disable(true);
        city.disable(true);
        tel.disable(true);
    }
   if (id == -2) 
   {

        // Code
        // Code
        // ...

        // Livevalidierung
        var title = new LiveValidation('title');
        var firstName = new LiveValidation('firstName');
        var lastName = new LiveValidation('lastName');
        var firm = new LiveValidation('firm');
        var street = new LiveValidation('street');
        var street2 = new LiveValidation('street2');        
        var plz = new LiveValidation('plz');    
        var city = new LiveValidation('city');  
        var tel = new LiveValidation('tel');    

        title.enable(true);
        firstName.enable(true);
        lastName.enable(true);
        firm.enable(true);
        street.enable(true);
        street2.enable(true);
        plz.enable(true);
        city.enable(true);
        tel.enable(true);

        lastName.add(Validate.Presence);
        street.add(Validate.Presence);
        street2.add(Validate.Presence);
        plz.add(Validate.Presence);             
        plz.add(Validate.Numericality);
        plz.add(Validate.Length, { minimum: 4, maximum: 5 } );
        city.add(Validate.Presence);
        streetnumber.destroy(true);
        streetnumber.remove(true);  
   }
   if (id == -1)
   {

        // Code
        // Code
        // ...

        // Livevalidierung
        var title = new LiveValidation('title');
        var firstName = new LiveValidation('firstName');
        var lastName = new LiveValidation('lastName');
        var firm = new LiveValidation('firm');
        var street = new LiveValidation('street');
        var streetnumber = new LiveValidation('streetnumber');      
        var street2 = new LiveValidation('street2');        
        var plz = new LiveValidation('plz');    
        var city = new LiveValidation('city');  
        var tel = new LiveValidation('tel');    

        title.enable(true);
        firstName.enable(true);
        lastName.enable(true);
        firm.enable(true);
        street.enable(true);
        streetnumber.enable(true);
        street2.enable(true);
        plz.enable(true);
        city.enable(true);
        tel.enable(true);

        lastName.add(Validate.Presence);
        street.add(Validate.Presence);
        streetnumber.add(Validate.Presence);
        plz.add(Validate.Presence);             
        plz.add(Validate.Numericality);
        plz.add(Validate.Length, { minimum: 4, maximum: 5 } );
        city.add(Validate.Presence);
        street2.destroy(true);
        street2.remove(true);   
   }
}

function 123 () {
    // Code
    // Code
    // ...
}

但是“第一个问题”仍然存在:

  • 当我选择“值 -1”时,Livevalidation 不起作用
  • 当我选择“值 -2”时,Livevalidation 有效
  • 当我选择“值-1”(-2之后)Livevalidation也有效

现在还附加了禁用/启用功能:

  • 当我选择“值 -1”时,输入字段被启用
  • 然后我选择“值 1”输入字段被禁用
  • 当我再次选择“值 -1”时,输入字段仍然被禁用!
  • 仅当我选择“值 -2”时
  • 然后再次选择“值-1”输入字段有效
于 2013-07-29T21:55:57.000 回答