我正在使用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>
答案 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?