如何基于PHP值创建一个只读的HTML元素

时间:2017-07-08 03:23:05

标签: javascript php html forms whitespace

我有这段代码:

<input type = "text" value = "$va" name = "n"/>

如果va不是空格,我希望它是readonly。我怎么能做到这一点?

3 个答案:

答案 0 :(得分:1)

这应该使得如果$va包含空格,那么该字段将是只读的。

<?php

$readonly = (!empty($va) && strlen(trim($va)) == 0) ? null : 'readonly';
echo '<input type="text" value="'.$va.'" name = "n" '.$readonly.' />';

但是我不确定你是否也想要包含一个空字符串作为&#34;只包括空格&#34;,在这种情况下你可以改变第一行:

$readonly = (strlen(trim($va)) == 0) ? null : 'readonly';

答案 1 :(得分:1)

  

使用Java脚本的第一个选项

在javascript中你可以这样做:

1st:为你的元素添加一个id

<input type = "text" value = "$va" name = "n" id='n'/> //i just made it the same as the name

第二:获取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;  ?> />;

答案 2 :(得分:0)

这是

<input type = "text" value = "$va" name = "n" <?= ($va != '' || $va == null) ? '' : 'readonly'; ?>/>

检查https://www.php.net/manual/en/control-structures.if.php