1

在制作等效的 jquery 占位符时,我遇到了表单提交的问题。现在焦点/焦点输出的值发生变化,但我遇到的问题是字段不能留空,但表单验证将默认值读取为值,因此它允许它。我尝试检查 submit() 和 onclick()。Onclick 提交按钮并提交表单本身。都没有奏效。如果值是默认值,我需要检查它何时提交。如果是的话,希望能在提交之前使值变为空白。这样,内置错误系统的 drupal 将触发而不是构建我自己的。

占位符文本的当前代码。

if ($.browser.msie) {
    // for name field
    $('#edit-submitted-name').focus(function(){
        if ( $('#edit-submitted-name').val() == 'Name...' ) {
            $(this).val('');
            $(this).css('color', '#000');
        }
    });
    $('#edit-submitted-name').focusout(function(){
        if ( !$('#edit-submitted-name').val() ) {
            $(this).val('Name...');
            $(this).css('color', '#abadb3');
        }
    });
    //for email address field
    $('#edit-submitted-email-address').focus(function(){
        if ( $('#edit-submitted-email-address').val() == 'Email Address...' ) {
            $(this).val('');
            $(this).css('color', '#000');
        }
    });
    $('#edit-submitted-email-address').focusout(function(){
        if ( !$('#edit-submitted-email-address').val() ) {
            $(this).val('Email Address...');
            $(this).css('color', '#abadb3');
        }
    });
    // for email field
    $('#edit-submitted-email').focus(function(){
        if ( $('#edit-submitted-email').val() == 'Email...' ) {
            $(this).val('');
            $(this).css('color', '#000');
        }
    });
    $('#edit-submitted-email').focusout(function(){
        if ( !$('#edit-submitted-email').val() ) {
            $(this).val('Email...');
            $(this).css('color', '#abadb3');
        }
    });

    $('#edit-submitted-name').val('Name...');
    $('#edit-submitted-name').css('color', '#abadb3');
    $('#edit-submitted-email-address').val('Email Address...');
    $('#edit-submitted-email-address').css('color', '#abadb3');
    $('#edit-submitted-email').val('Email...');
    $('#edit-submitted-email').css('color', '#abadb3');

}
4

4 回答 4

0

Jquery Watermark 是占位符的好例子:-

http://code.google.com/p/jquery-watermark/

于 2012-12-27T06:00:13.863 回答
0

您可以使用 jquery 占位符插件: jquery.placeholder.js

于 2012-12-27T05:55:42.227 回答
0

我认为你不需要这样的插件。这似乎可能是矫枉过正。

你是说你做过类似的事情......

$('#formId').submit(function () {
    //check all inputs in the form, if their values match the placeholders then remove the values

    //returning true or false here will either continue form submission or stop it (i think)
});

当您检查元素时,您是否在标签上看到任何事件侦听器?谷歌浏览器的检查器在 CSS 下方的一个元素上有一个部分,它将向您显示事件侦听器。这将帮助您验证是否将任何内容添加为 onSubmit

于 2012-12-27T14:12:26.657 回答
0

这对我很有用。

$('form.webform-client-form input#edit-submit').click(function(){
        if ($('#edit-submitted-name').val() == 'Name...') {
            $('#edit-submitted-name').val('');
            $('form.webform-client-form').submit();
        }
        if ($('#edit-submitted-email-address').val() == 'Email Address...') {
            $('#edit-submitted-email-address').val('');
            $('form.webform-client-form').submit();
        }
        if ($('#edit-submitted-email').val() == 'Email...') {
            $('#edit-submitted-email').val('');
            $('form.webform-client-form').submit();
        }
    });
于 2012-12-28T03:50:55.623 回答