jquery的
require 'net/http'
uri = URI('https://api.wmata.com/StationPrediction.svc/json/GetPrediction/{All}')
uri.query = URI.encode_www_form({
# Specify your subscription key
'api_key' => 'I have the key.',
})
request = Net::HTTP::Get.new(uri.request_uri)
# Basic Authorization Sample
# request.basic_auth 'username', 'password'
response = Net::HTTP.start(uri.host, uri.port, :use_ssl => uri.scheme == 'https') do |http|
http.request(request)
end
puts response.body
/rubies/ruby-2.2.2/lib/ruby/2.2.0/uri/rfc3986_parser.rb:66:in `split': bad URI(is not URI?): https://api.wmata.com/StationPrediction.svc/json/GetPrediction/{StationCodes} (URI::InvalidURIError)
from /Users/manshu/.rvm/rubies/ruby-2.2.2/lib/ruby/2.2.0/uri/rfc3986_parser.rb:72:in `parse'
from /Users/manshu/.rvm/rubies/ruby-2.2.2/lib/ruby/2.2.0/uri/common.rb:226:in `parse'
from /Users/manshu/.rvm/rubies/ruby-2.2.2/lib/ruby/2.2.0/uri/common.rb:713:in `URI'
from data.rb:3:in `<main>'
我是jquery的新手,为什么我的提交不会激活里面的功能?如果是这样验证的好方法?
答案 0 :(得分:1)
您的代码确实调用了验证函数,但它会立即提交表单,因此您不知道是否有任何验证。如果你这样做:
$('#contact-form').submit(function () {
if (!(checkgender() && checkname() && checkemail()){
//tell the user they screwed up
return false;
}
});
提交表单后,它会运行验证功能。如果它们都没有全部归还,则不会提交表格,此时您应该告知用户他们搞砸了。如果验证成功,则提交表单。
对于你的第二个问题,是的,这是一个很好的方法,但是,在客户端验证之后,你应该总是进行额外的服务器端验证。
...以及@ ethorn10所说的,修复你缺少的括号。
答案 1 :(得分:0)
默认情况下'.submit function'将提交表单,以防止我们必须使用 event.preventDefault() JSFIDDLE
//jquery started
$(document).ready(function () {
$("#username").keyup(checkname);
$("#gender").keyup(checkgender);
$("#email").keyup(checkemail);
$('#contact-form').submit(function(event){
event.preventDefault(); // preventing the default form submission
checkgender();
checkname();
checkemail();
})
});