未捕获的SyntaxError:jquery中出现意外字符串
In_form.html.erb未捕获的SyntaxError:jquery中出现意外字符串,jquery,ruby-on-rails-5,Jquery,Ruby On Rails 5,In_form.html.erb <script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.11.1/jquery.validate.min.js"></script> <%= form_for(user, :html=>{:class=>'user_form_validation'}) do |f| %> <div class="field">
<script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.11.1/jquery.validate.min.js"></script>
<%= form_for(user, :html=>{:class=>'user_form_validation'}) do |f| %>
<div class="field">
<%= f.label :first_name %>
<%= f.text_field :first_name%>
<p id="first_name_error"></p>
</div>
<div class="field">
<%= f.label :last_name %>
<%= f.text_field :last_name%>
<p id="last_name_error"></p>
</div>
<div class="actions">
<%= f.submit "Create",:id => "submit_button" %>
</div>
<% end%>
<script type="text/javascript">
$(document).ready(function(){
$('.user_form_validation').validate({
alert($('#user_first_name'.val());
errorPlacement: function(error, element) {
$(element).closest('div').append(error);
},
onfocusin: function(element) {
this.lastActive = element;
if ( this.settings.focusCleanup && !this.blockFocusCleanup ) {
this.addWrapper(this.errorsFor(element)).hide();
}
},
onfocusout: function(element) {
if ( !this.checkable(element) ) {
this.element(element);
}
},
onkeyup: function(element) {
this.element(element);
if (element.name == 'user[first_name]' && element.value != ""){
$('#first_name_error').addClass('valid');
}else{
$('#first_name_error').removeClass('valid');
}
if (element.name == 'user[last_name]' && element.value != ""){
$('#last_name_error').addClass('valid');
}else{
$('#last_name_error').removeClass('valid');
}
},
rules : {
"user[first_name]" : {
required : true
},
"user[last_name]" : {
required : true
},
},
messages : {
"user[first_name]" : {
required : "Please enter your name."
},
"user[last_name]" : {
required : "Please enter your name."
}
}
});
});
</script>
<style>
.error{
color: red;
}
p.valid {
background: url('../assets/success.png') left -1px no-repeat;
padding: 0 0 0 20px;
margin: 0 0 0 0px;
font-size: 14px;
color: #666;
line-height: 15px;
height: 15px;
}
label.error {
background: url('../assets/error.png') left -1px no-repeat;
padding: 0 0 0 20px;
margin: 0 0 0 0px;
font-size: 14px;
color: #792121;
line-height: 15px;
height: 15px;
}
</style>
{:class=>'user_form_validation'})do | f |%>
“提交按钮”%>
$(文档).ready(函数(){
$('.user\u form\u validation')。验证({
警报($('#用户名'.val());
errorPlacement:函数(错误,元素){
$(元素)。最近('div')。追加(错误);
},
onfocusin:函数(元素){
this.lastActive=元素;
如果(this.settings.focusCleanup&!this.blockFocusCleanup){
this.addWrapper(this.errorsFor(element)).hide();
}
},
onfocusout:函数(元素){
如果(!this.checkable(元素)){
这个,元素(元素),;
}
},
onkeyup:函数(元素){
这个,元素(元素),;
if(element.name=='user[first_name]'&&element.value!=''){
$('#first_name_error').addClass('valid');
}否则{
$('#first_name_error')。removeClass('valid');
}
if(element.name=='user[last_name]'&&element.value!=''){
$('last_name_error').addClass('valid');
}否则{
$('#姓氏\错误')。removeClass('valid');
}
},
规则:{
“用户[名字]”:{
必填项:true
},
“用户[姓氏]”:{
必填项:true
},
},
信息:{
“用户[名字]”:{
必填:“请输入您的姓名。”
},
“用户[姓氏]”:{
必填:“请输入您的姓名。”
}
}
});
});
.错误{
颜色:红色;
}
p、 有效的{
背景:url('../assets/success.png')左-1px不重复;
填充:0 20px;
利润率:0像素;
字体大小:14px;
颜色:#666;
线高:15px;
高度:15px;
}
标签错误{
背景:url('../assets/error.png')左-1px不重复;
填充:0 20px;
利润率:0像素;
字体大小:14px;
颜色:#792121;
线高:15px;
高度:15px;
}
提交表单后,它不会发出任何警报,并且在控制台中,它会为警报显示未捕获的语法错误:意外字符串,并且不会为名字和姓氏显示任何错误消息。而是使用内置方法,如:
$('.user_form_validation').validate({
submitHandler: function(form) {
alert($('#user_first_name').val());
}
});
问题是您正在javascript对象文本中放置警报:
{
alert($('#user_first_name').val());
}
由于您已将
.validate()
方法分配给jquery对象,并且此方法将对象作为参数。该对象应为具有键和值的对象。请改用内置方法,如:
$('.user_form_validation').validate({
submitHandler: function(form) {
alert($('#user_first_name').val());
}
});
问题是您正在javascript对象文本中放置警报:
{
alert($('#user_first_name').val());
}
由于您已将
.validate()
方法分配给jquery对象,并且此方法将对象作为参数。对象应为具有键和值的对象。尝试这样做。validate()
函数验证表单。若要提醒字段值,可以使用jquery事件。如下所示。单击submit按钮..e
<script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.11.1/jquery.validate.min.js"></script>
<%= form_for(user, :html=>{:class=>'user_form_validation'}) do |f| %>
<div class="field">
<%= f.label :first_name %>
<%= f.text_field :first_name%>
</div>
<div class="field">
<%= f.label :last_name %>
<%= f.text_field :last_name%>
</div>
<div class="actions">
<%= f.submit "Create",:id => "submit_button" %>
</div>
<% end%>
<script type="text/javascript">
$(document).ready(function(){
$('#submit_button').click(function(){
alert($('#user_first_name').val());
});
});
</script>
{:class=>'user_form_validation'})do | f |%>
“提交按钮”%>
$(文档).ready(函数(){
$(“#提交按钮”)。单击(函数(){
警报($('#user_first_name').val());
});
});
如果你想验证你的表单,试试这个..小提琴
及
尝试这样做。
validate()
函数验证表单。若要提醒字段值,可以使用jquery事件。如下所示。单击提交按钮..e
<script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.11.1/jquery.validate.min.js"></script>
<%= form_for(user, :html=>{:class=>'user_form_validation'}) do |f| %>
<div class="field">
<%= f.label :first_name %>
<%= f.text_field :first_name%>
</div>
<div class="field">
<%= f.label :last_name %>
<%= f.text_field :last_name%>
</div>
<div class="actions">
<%= f.submit "Create",:id => "submit_button" %>
</div>
<% end%>
<script type="text/javascript">
$(document).ready(function(){
$('#submit_button').click(function(){
alert($('#user_first_name').val());
});
});
</script>
{:class=>'user_form_validation'})do | f |%>
“提交按钮”%>
$(文档).ready(函数(){
$(“#提交按钮”)。单击(函数(){
警报($('#user_first_name').val());
});
});
如果你想验证你的表单,试试这个..小提琴
及
您应该将适当的对象作为参数传递给
。验证。当然不是您所拥有的。您应该将适当的对象作为参数传递给。validate
。当然不是您所拥有的。通过使用$('.user_form_validation')。单击({alert($('.user_first_name')).val();});它正在工作,但我需要$('.user_form_validation').valiadte({alert($('.user_first_name')).val();});像那样。对于。验证它不起作用对于验证,您必须设置文件规则和消息
。将您的警报代码放在submitHandler:function(){alert($('#user_first_name'.val())}
。如果我在submitHandler中放置警报,表示只有时间警报起作用,但剩余功能不起作用。follow fiddle..不需要额外参数。使用$('.user_form_validation')。单击({alert($('.#user_first_name').val());它起作用,但我想要$('.user_form_validation')。valiadte({alert($('#user_first_name').val())});类似于这样。对于.validate,它不起作用。对于验证,您必须设置文件规则和消息
。将您的警报代码放在submitHandler:function()中。{alert($('#user_first_name.val())};
。如果我在submitHandler中放置警报,表示只有时间警报起作用,但其余功能不起作用。follow fiddle..不需要额外的参数。