2014-07-24 3 views
0

Я использую JQuery валидатор плагинJQuery валидатор с правилами, определенными в PHP

http://jqueryvalidation.org

мой QSN имеет отношение к этому ответу

https://stackoverflow.com/a/2862194/932473,

в основном мне нужно дать функцию, на основе некоторых правил, которые требуются или не требуются. Разница заключается в том, что мне нужно, и у меня есть правила, как массив в моем PHP, как

$validationMessages['rules'] = array(
    'email' => array(
     'required' => 'function() { return $("#myDiv").length; }', 
    ) 
); 

тогда я в JS

var rules = $.parseJSON('<?php echo json_encode($validationMessages['rules'])?>'); 

Теперь, когда я отправить форму он говорит

Error: Syntax error, unrecognized expression: function() { return $("#myDiv").length; } 

, когда вместо функции в php установлен набор required => true, он отлично работает, но с определением функции дает эту ошибку? Как я могу определить функцию в php и заставить ее работать в js?

Благодаря

+0

@LorenzMeyer, я думаю, у непонятым, может быть, это моя вина, функция не является функцией PHP, это функция JS, я обновил QSN, пожалуйста Лемм знать, если это имеет смысл – dav

+0

назовите свою функцию '' required '=>' function myFunction() {return $ ("# myDiv"). length; } ', ' – Vector

+0

Вы правы, мне очень жаль. –

ответ

0

Вы должны сохранить JSON строковой переменной и использовать эту переменную в качестве параметра в $ .parseJSON. Как это:

var rulesJson = '<?php echo json_encode($validationMessages["rules"])?>'; 
var rulesObj = $.parseJSON(rulesJson); 
+0

tks, но не работает, дает еще одну ошибку в jquery min 'SyntaxError: JSON.parse: expected ',' or '}' после значения свойства в объекте – dav

+0

var valid = '{" email ": {" required ": "function() {return $ ('# myDiv'). length;}"}} '; Посмотрите на эту строку. В любом случае это недействительный JSON или String, вам нужно будет найти способ получить строку с экранированными символами из PHP. – superrafal

+1

Да, выяснилось, что несколько часов назад, вот статья, не пробовал, но похож на ту же проблему http://solutoire.com/2008/06/12/sending-javascript-functions-over-json/ tks – dav

Смежные вопросы