var App = App || {};
App = {
getDataFromServer: function(){
var self = this,
deferred = $.Deferred(),
requests = [];
requests.push($.getJSON('request/ajax/url/1'));
requests.push($.getJSON('request/ajax/url/2'));
$.when.apply(jQuery, requests).done(function(xhrResponse) {
return deferred.resolve(xhrResponse.result);
});
return deferred;
},
init: function(){
this.getDataFromServer().done(_.bind(function(resp1, resp2) {
// Do the operations which you wanted to do when you
// get a response from Ajax, for example, log response.
}, this));
}
};
App.init();
Регулярное выражение атрибута HTML5 @pattern основано на JavaScript regex, поэтому вы можете использовать шестнадцатеричную нотацию или unicode notation для этого символа, как в JavaScript:
" = \x22 OR \u0022
' = \x27 OR \u0027
Чтобы вы могли легко использовать
pattern="[^'\x22]+"
TADA! Нет библиотек JavaScript! ;)
Попробуйте использовать js-структуру, такую как JQuery или PrototypeJS
, тогда вы можете сказать
onchange=(function() {...});
, что вы можете следить за тем, как использовать regex в jQuery через этот поток: Проверка правильности выражения в jQuery
, если у вас есть браузер HTML5, вы можете написать
<input id="ipt_my_field" type="text" name="my_field_name" pattern="[^'"]+"
, и вам нужно подготовиться к не совместимым браузерам с помощью Модернизатора с некоторыми такими
if(!Modernizr.input.pattern) {
var input = document.getElementById("ipt_my_field");
input.addEvent('onblur', function(ip){
if(ip.value.match(/[^'"]+/)) {
// is a good
} else {
// is a bad
}
});
}