<input type=submit />
ボタンを使用してフォームを送信するのではなく、代わりに<a>
要素を使用しています。これは、スタイル要件によるものです。だから私はこのコードを持っています:
myButton.addEvent('click', function() {
document.id('myForm').submit();
});
ただし、 onとの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 />
ボタンを使用してフォームが送信された場合にうまく機能します。送信をリッスンし、入力値がまだデフォルト値である場合はそれらをクリアして、それらが本質的に空であることを検証します。
ただし、タグのクリック イベントをリッスンしてフォームの 1 つを送信しているため、<a>
タグform.addEvent('submit', function(e) {
が起動されないようです。
どんな助けでも大歓迎です。