谁说readonly值只能用JS改变?
在处理输入文本字段的readonly属性时,我们可能会想当然地认为只能通过JavaScript进行更改。然而,事实并非如此。
在具体场景中,提供了一段使用php决定是否将readonly属性设置为true的代码。但代码未能达到预期效果,因为readonly的性质并非如我们想象的那样。
关键点:readonly的控制方式
立即学习“PHP免费学习笔记(深入)”;
最基本的错误在于:readonly属性并不是由true或false值来控制的。只要设置了readonly属性,无论其后跟的值是什么,该字段都不可编辑。
正确代码:
为了正确反映php中设定的条件,代码需要更改为如下:
<input type="text" value="<?php echo $_GET['userName'] ?? ''; ?>" <?php print(isset($_GET['userName']) ? 'readonly':''); ?> />
在这个版本中,print()函数将输出readonly属性,当isset($_get[‘username’])为真(表明get请求中存在username)时,才添加readonly属性。否则,不会设置该属性,字段可编辑。
综上所述,readonly属性的控制并不仅限于javascript。通过对属性行为的正确理解和代码的相应调整,我们可以在php中以清晰和有效的方式实现动态readonly配置。