使用jQuery填充空输入

时间:2014-08-27 14:26:12

标签: javascript jquery html

我正在使用PHP + MySQL。在一个页面中,我有一个aprox表单。 30输入。

在显示表单后,最后我执行了一些样式表单的jQuery句子。

好吧,我的SQL中的一些行有数据空输入,所以我显示空输入。我想填写表格" ------"没有将斜杠写入DB,因为SQL会更大。

我正在尝试" replaceWith",但我不知道这个实现是否"空"是正确的。 即使没有.is(:empty)

,这也行不通
<script>
    $('#form').find('input[type=text]').is(':empty').replaceWith(function()
       {
        return this.val('------');
       });
</script>

3 个答案:

答案 0 :(得分:3)

jQuery&#39; s :empty找到没有子元素的元素,而不是没有值的元素,并且作为输入无法生成孩子,它什么也找不到。

jQuery&#39; s is()返回一个布尔值,而不是一个集合。

jQuery&#39; s replaceWith替换整个元素,而不仅仅是值。

检查值。

$('#form input[type=text]').val(function(_, val) {
    return val.length === 0 ? '------' : val;
});

$('#form input[type=text]').filter(function() {
    return this.value.length === 0;
}).val('------');

如果需要,请投掷$.trim以修剪空白

答案 1 :(得分:1)

使用类似的东西:

<script>
    $('#form').find('input[type=text]').each(function(e){
        if($(this).val()=="") $(this).val("---");
    })       
</script>

答案 2 :(得分:1)

您是否考虑过使用HTML placeholder属性?

您可以使用placeholder使短划线显示为浅灰色文本而不实际更改输入值。它们会自动添加到您网页上的任何空白字段中:

<input type="text" placeholder="----" value="asdf" name="notempty"
    title="This has a placeholder, but doesn't show it because the input is filled with something" />
<input type="text" placeholder="----" value="" name="empty"
    title="This is empty, so it shows the dashes" />

占位符文字不会包含在您的$_POST数据中。在此示例中,$_POST['empty']将为空。

许多现代浏览器都支持placeholder属性,但不支持IE9:

http://caniuse.com/#feat=input-placeholder

还有各种jQuery插件可以模仿这种效果。你可以在这里阅读其中的一些内容:

How do I get placeholder text in firefox and other browsers that don't support the html5 tag option?