我不想使用<input type=submit />
按钮提交表单,而是使用<a>
元素。这是由于样式要求。所以我有这个代码:
myButton.addEvent('click', function() {
document.id('myForm').submit();
});
但是,我还编写了一个类来改进和实现 和上的placeholder
属性:inputs
textareas
var FDPlaceholderText = new Class({
Implements: Events,
initialize: function() {
var _self = this;
var forms = document.getElements('form');
forms.each(function(form) { // All forms
var performInit = false;
var i = 0;
var ph = [];
form.getElements('input, textarea').each(function(el) { // Get form inputs and textareas
if (el.getProperty('placeholder') != null) { // Check for placeholder attribute
performInit = true;
ph[i] = _self.initPlaceholder(el); // Assign the placeholder replacement to the elements
}
i ++;
});
if (performInit) {
_self.clearOnSubmit(form, ph);
}
});
},
clearOnSubmit: function(form, ph) {
form.addEvent('submit', function(e) {
ph.each(function(el) {
if (el.value == el.defaultValue) {
el.value = '';
}
});
});
},
initPlaceholder: function(el) {
el.defaultValue = el.getProperty('placeholder');
el.value = el.getProperty('placeholder');
el.addEvents({
'focus': function() {
if (el.value == el.defaultValue) el.value = '';
},
'blur': function() {
if(el.value.clean() == ''){
el.value = el.defaultValue;
}
}
});
return el;
}
});
window.addEvent('domready', function() {
new FDPlaceholderText();
});
如果使用实际<input type=submit />
按钮提交表单,则上述类工作得很好:它侦听提交并清除输入值,如果它们仍然是默认值,因此验证它们基本上是空的。
但是,似乎因为我通过收听<a>
标签上的点击事件来提交我的表单之一,form.addEvent('submit', function(e) {
所以没有被触发。
任何帮助表示赞赏。