【发布时间】:2017-02-17 01:07:39
【问题描述】:
我在一个 div 中有一个 textarea,下面有一个选择下拉菜单,下面是两个按钮。一种是预览,另一种是用于将文本上传到文件。 如果 textarea 为空,我试图隐藏 Upload 按钮。我的 javascript 无法正常工作,因为它总是隐藏按钮。
这是表单、按钮容器和选择下拉菜单(所有选项都被省略了,因为它们有 20 个):
<div class="container">
<label for="text-area">Paste your code here: </label>
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>">
<textarea name="code_input" id="code_textarea" class="form-control" rows="15" placeholder="Start coding!" required><?= isset($_POST['code_input']) ? $_POST['code_input'] : '' ?></textarea>
<div class="button-container">
<select required name="language-select" class="form-control" id="language_selector">
<option value="" selected disabled>Language</option>
<option>20 options follow</option>
<!-- THIS WILL KEEP THE VALUE IN THE DROPDOWN AFTER SUBMIT -->
<script type="text/javascript">
document.getElementById('language_selector').value = "<?php echo $_POST['language-select'];?>";
</script>
</select>
<br/>
<br/>
<div id="button-container" class="btn-toolbar">
<button id="drive_submit_btn" class="btn btn-md" type="submit">Preview</button>
<button id="upload_btn" class="btn btn-md" type="submit">Upload</button>
</div>
</div>
</form>
<div class="show-code">
<script src="lib/prism.js"></script>
<!-- THIS DISPLAYS THE CODE AFTER SUBMITTING USING THE PRISM.JS PLUGIN FOR SYNTAX HIGHLIGHTING -->
<!-- Get language selection from dropdown and append it to language class. Echo the text as highlighted code -->
<pre><code class="language-<?php echo $language ?>"><?php echo $user_code; ?></code></pre>
</div>
</div>
<!-- THIS IS THE JAVASCRIPT TO HIDE THE BUTTON UNTIL TEXT IS ENTERED.-->
<!-- HOWEVER IT ALWAYS HIDES IT!! -->
<script>
$(document).ready(function() {
/* I EVEN TRIED TO TRIM IT TO NO AVAIL */
var content = $.trim($('#code_textarea').val());
if(content.length === 0) {
$('#upload_btn').hide();
} else {
$('#upload_btn').show();
}
});
</script>
我已经看到了很多链接到他们的 JSFiddle 的答案,而且它们都运行良好。是什么导致我的不能正常工作?除了我的 JS 函数外,其他一切都很好。
【问题讨论】:
-
能不能只显示相关的源码。还通过
php放入内容,或者您的意思是如果客户端从文本区域中删除数据,它不会隐藏按钮,因为为此您需要使用事件侦听器。 -
您是否通过调试确定 content.length 实际上为 0?当我复制您的代码并删除 textarea 中的 php 脚本时,该按钮工作正常。可能想仔细检查那里发生了什么。
-
@NewToJS 这就是我包含 php 代码的原因。如果我删除php代码,提交后代码块不显示。
标签: javascript php jquery html textarea