理解rails下的html标记,用Javascript验证表单

Understanding html tags under rails to validate a form with Javascript

本文关键字:Javascript 验证 表单 标记 rails 下的 html 理解      更新时间:2023-09-26

我正在用Javascript做我的第一步,未能找出一个简单的表单验证的适当语法(我想呈现一个错误,如果我的文本区域"comments"是空的,当用户点击"decline")。这是我在rails

视图中的代码
<%= form_for (@account) do |f| %> 
<%= f.label :comments, "Comments" %> 
<%=f.text_area :comments %> 
<%= f.submit "Confirm", :name=>"conf" %> 
<%= f.submit "Decline (with comments)",:onclick=>"return(validate());" %> 
<% end %> 

这是我的网页的html源代码

<form class="edit_account" id="edit_account_13" action="/accounts/13"accept-charset="UTF-8" method="post">
<input name="utf8" type="hidden" value="&#x2713;" />
<input type="hidden" name="_method" value="patch" />
<input type="hidden" name="authenticity_token" value="goWtQIV74wGXbbHIOM9hZTOftw90dl+/x43hxO0tnvoSGAFqcHmL/L3SIiVqkhe/yXWNMQZqILU9Saa/gxnCjA==" />
<label for="account_comments">Comments</label>
<textarea name="account[comments]" id="account_comments">
</textarea>
<input type="submit" name="conf" value="Confirm" />
<input type="submit" name="commit" value="Decline (with comments)" onclick="return(validate());" />

在我的javascript文件夹中,我放入了以下代码

function validate() { 
  //I have tried many other path to test this conditions but none of them worked
  if(document.forms.account_comments.value == "" ) { 
    alert( "Please provide something!" ); 
  } 
}

我知道函数被调用,因为如果我删除"if",我确实会得到警报。但是,我没有设法找到适当的路径/语法来测试文本区域是否为空。谁能给我适当的语法请和一些提示我应该使用什么html标签(名称?(id?)用Javascript操作它们?谢谢。

您没有正确访问文本区。你可以这样选择:

function validate() {
  var textarea = document.getElementById('account_comments');
  if(textarea.value === "" ) { 
    alert( "Please provide something!" ); 
  } 
}

尝试通过id:

获取元素
function validate() { 
  if((document.getElementById('account_comments').value) === "") {
    alert( "Please provide something!" ); 
  }
}