Передать строку в функцию [дубликат]

239
22 июня 2017, 05:04

На данный вопрос уже ответили:

  • Как вставить(экранировать) переменную в место перед точкой JS 1 ответ
  • Ошибка при парсинге значения «direction». Потерянное объявление 2 ответа

Нужно передать строку 'ema' в функцию, чтобы в переданная строка использовалась параметром mai. Если использовать непосредственно 'ema' вместо mai то всё работает.

function ValideForm(mai){ 
    $('form').validate({ 
        rules:{ 
            mai:{required:true, email:true} 
        }, 
        messages:{ 
            mai:{required:"Обязателен для заполнения", 							   						 email:"Некорректно"} 
        }     
    }); 
} 
 
ValideForm('ema');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.16.0/jquery.validate.min.js"></script> 
 
<form action=""> 
 <label for="">Ваша почта:</label> 
<input type="text" class="t4 email" name="ema"> 
</form>

Answer 1

Если вы хотите, что бы название поля у объекта хранилось в переменной, то нужно использовать не точечную нотацию, а доступ через скобки

function ValideForm(mai){
    var validateParams = {
        rules: {},
        message: {}
    }
    validateParams.rules[mai] = {required:true, email:true}
    validateParams.messages[mai] = {
        required:"Обязателен для заполнения",
        email:"Некорректно"
    }
    $('form').validate(validateParams);
}
ValideForm('ema');

В новой спецификации это делается еще проще

function ValideForm(mai){
    $('form').validate({
        rules:{
            [mai]:{required:true, email:true}
        },
        messages:{
            [mai]:{required:"Обязателен для заполнения", email:"Некорректно"}
        }    
    });
}
ValideForm('ema');
READ ALSO
Как убрать &lt;script src="libs/&hellip;/&hellip;js&lt;/script&gt;

Как убрать <script src="libs/…/…js</script>

Всем привет! Подскажите возможно ли отключить скрипт, который вызывает всплывающий модальный диалог, при уходе посетителя с сайта

240
transition не работает

transition не работает

Есть такой кодСмотрится тут он криво, но суть в том, что при нажатии input блок section становится видимым, но, я хочу, чтобы появлялся блок с эффектом...

365
Зигзаговый border в CSS

Зигзаговый border в CSS

Нужно сделать зигзаговую границу блока (из треугольников)

415
Изменить фон картинки при выборе ее опции по onclick (через CSS)

Изменить фон картинки при выборе ее опции по onclick (через CSS)

Суть в том что есть картинка с прозрачным фономВ опциях картинки есть выбор ее цвета

350