【问题标题】:Checking that at least one textarea is filled检查是否填充了至少一个文本区域
【发布时间】:2014-07-29 06:26:22
【问题描述】:

我需要帮助来添加一个控件来检查 textareas 上的至少一个是否已填充,这样人们就不会保存空白表单。所以它应该控制至少一个元素被检查和填充,否则它应该给出一个错误并且不会保存。如果有人知道如何做到这一点,我将不胜感激。我正在使用的代码在下面(实际上有更多的文本区域,但它们仅与其他名称相同)。

<tr>
<td valign="top" style='width: 300px;'>Family members help</td>
<%
elemText = xml.getElementFromXPath("//nursing_care/family_help/tekst");
%>
<td valign="top"><input <%=(elemText==null?"checked=\"checked\"":"") %> value="0" onclick="javascript:showText(this);" name="//nursing_care/family_help" type="radio" checked="checked">Valimata
<input <%=(elemText!=null?"checked=\"checked\"":"") %> value="1" onclick="javascript:showText(this);" name="//nursing_care/family_help" type="radio">Määratud</td>
<td>
<textarea style='width: 350px' style="display:<%=(elemText==null?"none":"block") %>" id="//nursing_care/family_help/tekst" name="//nursing_care/family_help/tekst"><%=(elemText!=null?elemText.getText():"") %></textarea>
</td>
<td><input style="display:<%=(elemText==null?"none":"block") %>" type="text" class="txt_left" id="//nursing_care/family_help/date" name="//nursing_care/family_help/date" value="<%=xml.getText("//nursing_care/family_help/date")%>" maxlength="10" size="10" 
onchange="gnlDateValid(this,event); if(event.returnValue != false);" onfocus="gnlGotFocus(getCurrentDate(),this); inputChanged(this);" onkeydown="gnlKeyDown('00.00.0000',this,event);" /></td>
</tr>
</tbody>
<tfoot>
<tr>
<td colspan="3"><input type="submit" class="button_save button" value="Salvesta" />
<input type="button" class="button" value="Sulge" onclick="window.close()" /></td>
</tr>
</tfoot>

这是显示/隐藏文本区域的功能(以防万一)

function showText(obj){
    var elements = document.getElementsByName(obj.name);
    var element = getNode(obj.name + "/tekst");
    if (elements[0].checked)
        element.style.display="none";
    else
        element.style.display="block";


         var element = getNode(obj.name + "/date");
            if (elements[0].checked)
                element.style.display="none";
            else
                element.style.display="block";


}

【问题讨论】:

    标签: javascript html


    【解决方案1】:

    这样的事情应该可以工作。

    像这样扩展提交按钮。

    &lt;input type="submit" class="button_save button" value="Salvesta" onclick="return submitCheck()"/&gt;

    并在您的 javascript 文件中实现此功能。

    function submitCheck(){
        var form = document.forms[0];
        var textareas = form.getElementsByTagName("textarea");
    
        for(var textarea in textareas){
            if(textarea.value !== ""){
                return true;
            }
        }
    
        return false;
    }
    

    顺便说一句,我建议您在使用 HTML DOM 时使用 jQuery ;-)

    【讨论】:

      猜你喜欢
      • 2023-04-10
      • 1970-01-01
      • 2012-08-18
      • 1970-01-01
      • 1970-01-01
      • 2021-05-14
      • 2010-12-10
      • 1970-01-01
      • 2018-09-16
      相关资源
      最近更新 更多