无法使用JQuery设置占位符属性

时间:2018-01-05 14:43:56

标签: javascript jquery placeholder document-ready dom-manipulation

我在输入字段上设置占位符时遇到问题。这是DOM:

<td id="searchSoNo" class="searchField">    
<input class="normal" type="text" size="30" name="opValueDet0" value="">
</td>

以下功能在页面加载时运行。

$('#searchSoNo > input').attr('placeholder', 'SO no');

该函数运行正常,我可以使用以下代码代替上述设置其他属性,如'id'和'rel'。

$('#searchSoNo > input').attr('id', 'soNo1');
$('#searchSoNo > input').attr('rel', 'relText');

但是,占位符似乎根本不起作用。有什么指针吗?

3 个答案:

答案 0 :(得分:0)

    <td id="searchSoNo" class="searchField">    
    <input id="myInput" class="normal" type="text" size="30" name="opValueDet0" value="">
    </td>

<script>

$('#myInput').attr("placeholder","MyPlaceHolder");
//or
$('#myInput').prop("placeholder","MyPlaceHolder");

</script>
  

        <td id="searchSoNo" class="searchField">    
        <input class="normal" type="text" size="30" name="opValueDet0" value="">
        </td>

    <script>

$('#searchSoNo > input[type="text"]').prop("placeholder","MyPlaceHolder");

</script>

答案 1 :(得分:0)

我也不明白,但如果你在输入上设置一个ID并按ID获取元素,那么它将起作用。

<td id="searchSoNo" class="searchField">    
<input id="ipt" class="normal" type="text" size="30" name="opValueDet0" value="">
</td>

$('#ipt').attr('placeholder', 'SO no');

https://jsfiddle.net/a4d44xo2/

答案 2 :(得分:0)

感谢所有回复。我看到它在其他地方工作(例如在你的jsfiddle中)。但不幸的是,似乎并没有在我的页面上工作。我尝试调试,可以看到占位符已设置,但之后被删除。

作为一个解决方案,我已将脚本移动到window.load(来自document.ready)处理程序,它现在正常工作。

再次感谢您的所有输入。