我想在单击匿名复选框时禁用输入。 PHP方法是首选。我正在寻找它立即禁用输入。如果需要Javascript,我也可以使用它。
我的尝试:
<form action="#form" method="post" id="form">
<div class="form-group">
<label for="name">Name:</label>
<input type="text" class="form-control" id="name" name="name" id="dis">
</div>
<div class="form-group">
<label for="email">Email:</label>
<input type="email" class="form-control" id="email" name="email" required>
</div>
<div class="checkbox">
<label><input type="checkbox" name="check">Anonymous</label>
</div>
<div class="form-group">
<label for="txta">Your Idea</label>
<textarea class="form-control" id="txta" rows="3" name="bright" required></textarea>
</div>
<button type="submit" class="btn btn-default final" style="border-radius:5px;" name="submit">Submit</button>
</form>
答案 0 :(得分:0)
看起来你试图混合jquery(javascript),它只是客户端与php(仅限服务器端)。这不行。首先必须了解这两层之间的区别。
当您的网络服务器(包括php)完成提供网页后,他们的工作就完成了。您不能再与PHP交互,除非您执行通常所说的ajax请求(请参阅:$ .post,$ .get,$ .ajax),它允许您联系脚本并发送/拉回数据。一旦将前端发送到浏览器,您必须使用javascript来实现您想要更改的内容。
jQuery是一个很棒的库,首先考虑通过删除猜测来节省大量时间,但如果你不了解任何编程语言的基本语法结构 - 你将花费未来2 - 3年的时间敲打你的就像我10年前做的那样,站在桌子上。我强烈建议您在youtube上观看教程或尽可能多地阅读。
话虽如此,当使用jquery点击时,你不需要php来禁用复选框。你可以把它放在你的HTML中,它应该可以工作。
<script>
$(document).on('change', 'input[name="check"]', function() {
$(this).attr('disabled', true).prop('disabled', true); //used .attr for browser compatibility.
});
</script>
我还应该注意到与原始javascript和jQuery有明显区别。我建议先学习javascript,这样你就可以有效地学习任何满足你需求的js库。 jQuery不是唯一的,但它有一个庞大的社区支持。
如果你不知道从哪里开始,首先要问google:“什么是javascript选择器”,“什么是javascript事件处理程序”,“如何修改事件javascript上的html元素”。这将使您走上正确的道路并做好准备,您将测试搜索关键字的限制。其中很大一部分也是学习术语(如数学)以找到正确的答案。
最后注意:除非包含jQuery,否则jQuery将无效。这是一个使用我在上面展示的例子。
<html>
<head>
<title>My Website</title>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.4/jquery.min.js" type="text/javascript></script>
<style>h1 { border-bottom:2px solid #CCC; }
<script>
$(document).on('change', 'input[name="check"]', function() {
$(this).attr('disabled', true).prop('disabled', true); //used .attr for browser compatibility.
});
</script>
</head>
<body>
<h1>Hello world!</h1>
<div>
<form>
<label for="fullname">Full Name:</label>
<input type="text" name="fullname" value="John Doe"/>
<br>
<label for="checkbox">Click Me:</label>
<input type="checkbox" name="cbox"/>
</form>
</div>
</body>
答案 1 :(得分:0)
PHP是一种后端语言,因此,您无法在用户交互时控制UI元素,PHP脚本在加载时在后台运行 - 或者在请求时运行,如果您使用的是AJAX方法。
所以,你有最好的方法是使用Javascript。 Javascript是一个前端(以及后端),允许您在其结束时响应用户的操作。它是基于事件的很多功能,对于那种类型的工作非常有效。
让我们开始吧,好吗?首先在复选框中添加id
值,然后您可以将其用于您的应用程序。
function disableName() {
document.getElementById("name").disabled = document.getElementById("anon").checked;
}
&#13;
<div class="form-group">
<label for="name">Name:</label>
<input type="text" class="form-control" id="name" name="name">
</div>
<div class="checkbox">
<label><input type="checkbox" name="check" id="anon" onclick="disableName()">Anonymous</label>
</div>
&#13;
该代码将获得anon
复选框,name
文本字段会在name
被选中时禁用anon
。
这是Javascript香草;没有你需要查看的外部库。
答案 2 :(得分:0)
PHP应该用于帮助构建DOM,但我不建议使用PHP来尝试和操作DOM。一旦构建了DOM并由浏览器呈现,它就会落入客户端的域中。 PHP是一种服务器端语言,而JavaScript是一种客户端语言,因此我认为更好的方法是使用JavaScript。
我建议您使用jQuery(JavaScript库)来完成此任务。
首先在您的复选框中添加ID:
<input type="checkbox" name="check" id="anonCheck">
然后,我们可以在该特定元素(您的复选框)上侦听点击事件。根据该复选框的状态,我们可以启用或禁用您的输入框。
$('#anonCheck').on('click', function(){
if ( $('#anonCheck').is(':checked') ) {
$("#name").prop('disabled', true);
} else {
$("#name").prop('disabled', false);
}
}