Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何添加占位符属性,如果;“价值”;字段为空_Javascript_Jquery - Fatal编程技术网

Javascript 如何添加占位符属性,如果;“价值”;字段为空

Javascript 如何添加占位符属性,如果;“价值”;字段为空,javascript,jquery,Javascript,Jquery,如果文本输入字段的“value”属性为空,是否有方法添加占位符属性(占位符标记,而不是“defaultvalue”和类似方法) 我在这里看到了许多类似的问题,但大多数问题都使用defaultvalue。我需要占位符标记,而且我根本不能影响HTML输出 这是给定的HTML输出示例: <input type="text" value="" name="textbox" id="edit-textbox"> 如果您使用的是HTML5(而且您应该这样做),则有一个本机占位符属性 <

如果文本输入字段的“value”属性为空,是否有方法添加占位符属性(占位符标记,而不是“defaultvalue”和类似方法)

我在这里看到了许多类似的问题,但大多数问题都使用defaultvalue。我需要占位符标记,而且我根本不能影响HTML输出

这是给定的HTML输出示例:

<input type="text" value="" name="textbox" id="edit-textbox">

如果您使用的是HTML5(而且您应该这样做),则有一个本机占位符属性

<input type="text" value="" placeholder="My placeholder!" name="textbox" id="edit-textbox">

编辑

正如您所说,您不能编辑HTML,必须使用JS,这可能会有所帮助

$('编辑文本框').attr('占位符','我的占位符!')


同样,这是针对HTML 5的。

我建议使用以下任何一种方法:

$('input:text').each(
    function(i,el) {
        if (!el.value || el.value == '') {
            el.placeholder = 'placeholdertext';
            /* or:
            el.placeholder = $('label[for=' + el.id + ']').text();
            */
        }
    });

也可以使用数组存储各种占位符:

var placeholders = ['Email address', 'favourite color'];

$('input:text').each(
    function(i,el) {
        if (!el.value || el.value == '') {
            el.placeholder = placeholders[i];
        }
    });​

要为特定元素指定特定占位符,请执行以下操作:

var placeholders = {
    'one' : 'Email address',
    'two' : 'Favourite color'
};

$('input:text').each(
    function(i,el) {
        if (!el.value || el.value == '') {
            el.placeholder = placeholders[el.id];
        }
    });​

在特定
输入的占位符对象中不存在条目的情况下添加了捕获/回退:

var placeholders = {
    'oe' : 'Email address', // <-- deliberate typo over there
    'two' : 'Favourite color'
};

$('input:text').each(
    function(i,el) {
        if (!el.value || el.value == '') {
            el.placeholder = placeholders[el.id] || '';
        }
    });​
var占位符={

‘oe’:‘Email address’,//@RPM这太简单了,不是吗?:)我写道我不能影响HTML输出。这是我的代码,我必须用jquery添加占位符属性,它根本不会影响HTML输出(除了添加占位符,这是你需要的,不是吗??)!但请记住,这是针对HTML 5的!我们彼此不理解。我在问题中编写了此代码。我只能使用jquery对其进行操作。你的解决方案建议我只编辑HTML代码,没有js我无法编辑。请注意,我不是发布到小提琴上的人。我想我得到了什么你是说现在。我将在下面编辑我的答案。@take2:正如你通过搜索可以找到的那样,有一个“HTML5”
占位符
属性/属性(你也可以通过JS设置)还有一大堆不支持它的浏览器插件/代码段。那个么,你们在哪里有效地卡住了?我尝试了这两个建议,但都不起作用……你们可以在这里检查一下:你们需要在代码中使用一个实际的标签元素。你们并没有,所以那个不起作用。太棒了,谢谢!一个问题尽管如此,还是要写出这段代码——您如何引用应该受到影响的文本框,即我如何定位准确的输入框(在这种情况下使用#textbox)?你想知道如何为特定元素指定占位符消息吗?是的。我在这页上有2-3个文本框,所以我只针对这一个,其他人不需要占位符。这一个也可以,谢谢!大卫是第一个,所以我接受了他的答案。好的!请注意我们的答案完全不同,我的答案是你的问题是:“如何添加占位符属性”和设置值属性(如他的回答中所示)与它完全不同。我用firebug检查了他的代码,占位符文本显示为占位符属性,因此这将是我问题的答案。哦,我真的很抱歉,你完全正确!我被他的代码中使用“if”误导了,这就是为什么我认为他使用了value属性。如果你设置right属性(占位符)您不需要if语句来检查值是否为空,因为占位符属性的含义是在值为空时设置值。没问题;)老实说,我真的不知道这些细节,也许您应该建议David Thomas,你们可以更好地讨论它。
(function($) {

  $('#edit-textbox').attr('placeholder','Your placeholder text');

})(jQuery);