3

我在下面有这个对象:

我想过把消息像这样放在html中

<div id = "text_identifier">text_here</div> // div is hidden.

然后使用 getElementById 将消息拉入 JavaScript 并最终以正确的元素(中的参数元素Message)显示给用户

两个相关的问题?

像这样在 JavaScript 中包含内容是不好的做法吗?

如果我确实将消息移动到 HTML 中,我上面描述的方法是最佳实践吗?

/**
 *Message
 */

var Message = function( element )
{
    var messages =  
    {
        name:         'Please enter a valid name',
        email:        'Please enter a valid email',
        pass:         'Please enter passoword, 6-40 characters',
        url:          'Please enter a valid url',
        title:        'Please enter a valid title',
        tweet:        'Please enter a valid tweet',
        empty:        'Please complete all fields',
        email_s:      'Please enter a valid email.',
        same:         'Please make emails equal',
        taken:        'Sorry, that email is taken',
        validate:     'Please contact <a class="d" href="mailto:guy@host.com">support</a> to reset your password',
    }
    this.display = function( type ) 
    {
        element.innerHTML = messages[ type ];
        new Effects().fade( element, 'down', 4000 );
    }
};
4

3 回答 3

1

这取决于你喜欢怎么做。JavaScript 通常不是重要的东西,它是 php 后端部分。因此,将它集成到您​​的系统中,使其易于阅读。:)

我会data-*为每个元素使用 HTML 属性。

如果你有很多输入,你可以这样:

<input type="text" name="name" data-error-message="Please enter a valid name">
<input type="text" name="email" data-error-message="Please enter a valid email">
<input type="text" name="pass" data-error-message="Please enter passoword, 6-40 character">

当您选择值时,您还可以选择错误消息:)

于 2012-04-09T18:39:10.280 回答
1

我认为这确实是一种偏好。您可以在 HTML 中使用它并仅显示具有特定类的 div(即,显示“抱歉,该电子邮件已被占用”的 div 具有 .taken 类,并且在该错误触发时显示该 div)。

可能会有关于性能的争论,但我认为在这个规模上它们是微不足道的,如果有的话,你的方法可能会稍微好一些。它为您提供了一个统一的位置来编辑消息,以及一种将这些消息调用到前面的简单干净的方式。

所以真的,一个意见/偏好的问题。

于 2012-04-09T18:39:25.147 回答
1

我相信你知道如何根据你到目前为止所说的使用 javascript,实际上你使用的方法绝对没问题,不应该对你造成任何伤害,我添加了一个链接,以防你需要参考

http://www.javascripttoolbox.com/bestpractices/

于 2012-04-09T18:36:55.197 回答