1

有人可以帮忙吗,因为我已经尝试了各种 javascript 来让我的表单提交按钮保持禁用状态,直到用户在 textarea 中输入文本但没有任何效果。

我希望在用户输入一些文本之前禁用提交按钮。请问有什么建议吗?

  <form action="includes/welcomebio.php" method="post" id="form12" class="form12">          
 <textarea id="bio" textarea name="bio" data-id="bio" placeholder="Hi, my name is Peter. I'm 22 years old from North Wales." onKeyUp="checkWordCount();" data-required="true"><?php echo htmlspecialchars($profile['bio']); ?></textarea>
<input type="submit" class="welcome-submit" name="submit" value="Next ->" id="submit"/>
</form>

    <script type="text/javascript"> 
function disable() 
{ 
if(document.textarea.bio.value=="") 
{ 
document.textarea.submit.disabled=true; 
} 
else 
{ 
document.textarea.submit.disabled=false;    
} 
} 
</script> 
4

3 回答 3

3

您的代码有很多问题:

  1. 尽量不要使用内联 javascript
  2. 你的 textareaonKeyUp调用了一个不存在的函数
  3. 您正在尝试设置错误元素的禁用状态(您实际上有无效的 javascript)
  4. 你也有一些无效的 html

这就是你想要的:

HTML

<form action="includes/welcomebio.php" method="post" id="form12" class="form12">
    <textarea id="bio" name="bio" data-id="bio" data-required="true" placeholder="Hi, my name is Peter. I'm 22 years old from North Wales.">
        <?php echo htmlspecialchars($profile['bio']); ?>
    </textarea>
    <input type="submit" class="welcome-submit" name="submit" value="Next ->" id="submit" />
</form>

JAVASCRIPT

window.onload = function () {
    document.getElementById("bio").onkeyup = checkWordCount;
    checkWordCount();
};

function checkWordCount() {
    if (document.getElementById("bio").value == "") {
        document.getElementById("submit").disabled = true;
    } else {
        document.getElementById("submit").disabled = false;
    }
}

这是一个工作示例

于 2013-04-30T10:19:32.763 回答
0

尝试这个

     <body onload="disable()">
 <form action="includes/welcomebio.php" method="post" id="form12" class="form12">          
 <textarea id="bio" textarea name="bio" data-id="bio" placeholder="Hi, my name is Peter. I'm 22 years old from North Wales." onKeyUp="disable();checkWordCount();" data-required="true"></textarea>
<input type="submit" class="welcome-submit" name="submit" value="Next ->" id="submit"/>
</form>
</body>
    <script type="text/javascript"> 
function disable() 
{ 
    if(document.getElementById("bio").value=="") 
    { 
    document.getElementById("submit").disabled=true; 
    } 
    else 
    { 
    document.getElementById("submit").disabled=false;    
    } 
} 
</script> 
于 2013-04-30T10:55:20.590 回答
0

您正在尝试禁用 textarea 而不是提交按钮。您的代码不是有效的 JavaScript。最初禁用提交按钮并仅在 textarea 中有内容时启用它。此外,由于您为 textarea 使用占位符,因此您的 textarea 永远不会为空,因此请检查

document.getElementById("bio").value = ""

除非用户更改它,否则将始终返回 false。

于 2013-04-30T10:12:15.310 回答