【发布时间】:2017-07-08 03:23:05
【问题描述】:
我有这个代码:
<input type = "text" value = "$va" name = "n"/>
如果 va 不是空格,我希望它是只读的。我怎样才能做到这一点?
【问题讨论】:
标签: javascript php html forms whitespace
我有这个代码:
<input type = "text" value = "$va" name = "n"/>
如果 va 不是空格,我希望它是只读的。我怎样才能做到这一点?
【问题讨论】:
标签: javascript php html forms whitespace
这应该使得如果$va 包含空格,该字段将是只读的。
<?php
$readonly = (!empty($va) && strlen(trim($va)) == 0) ? null : 'readonly';
echo '<input type="text" value="'.$va.'" name = "n" '.$readonly.' />';
但是我不确定您是否还想包含一个空字符串作为“仅包含空格”,在这种情况下您可以将第一行更改为:
$readonly = (strlen(trim($va)) == 0) ? null : 'readonly';
【讨论】:
Java 脚本的第一个选项
在javascript中你可以这样做:
第一个:为你的元素添加一个 id
<input type = "text" value = "$va" name = "n" id='n'/> //i just made it the same as the name
2nd:获取id为'n'的元素
<script>
$(document).ready(function(){
var nValue = $("#n").val();
if( nValue != " " ) {
$("#n").prop("readonly",true);
}
});
</script>
PHP 的第二个选项
在 php 中,假设您通过 php 打印元素:
//other codes here
<?php $va = "noAWhiteSpace";
$readOnly = "";
if($va != ""){
$readOnly = "readonly";
}
?>
<input type = "text" value = "<?php echo $va; ?>" name = "n" <?php echo $readOnly; ?> />;
【讨论】:
$va。也可能不是" "。它可能是较长的空格字符串,或者包含制表符或换行符,所有这些都被视为空格。
这里是
<input type = "text" value = "$va" name = "n" <?= ($va != '' || $va == null) ? '' : 'readonly'; ?>/>
【讨论】: