如何制作paypal按钮字段';必需的';?
我使用paypal按钮生成器创建了一个“立即付款”按钮 该按钮有两个字段,然后按“立即付款” 但是,如果您将这些字段留空,您仍然可以付款 我想将这些字段设置为“必填”,如果用户没有填写这些字段,他应该无法付款。怎么做 该按钮不在paypal上托管,但按钮保护在上。我想对按钮进行加密 编辑 我尝试了javascript表单验证,没有成功,有什么帮助吗 这是剧本如何制作paypal按钮字段';必需的';?,paypal,paypal-ipn,paypal-sandbox,paypal-subscriptions,Paypal,Paypal Ipn,Paypal Sandbox,Paypal Subscriptions,我使用paypal按钮生成器创建了一个“立即付款”按钮 该按钮有两个字段,然后按“立即付款” 但是,如果您将这些字段留空,您仍然可以付款 我想将这些字段设置为“必填”,如果用户没有填写这些字段,他应该无法付款。怎么做 该按钮不在paypal上托管,但按钮保护在上。我想对按钮进行加密 编辑 我尝试了javascript表单验证,没有成功,有什么帮助吗 这是剧本 <form action="https://www.paypal.com/cgi-bin/webscr" method="post"
<form
action="https://www.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_s-xclick">
<table>
<tr><td><input type="hidden" name="on0" value="first form">form 1</td></tr><tr><td><input type="text" name="os0" maxlength="200"></td></tr>
<tr><td><input type="hidden" name="on1" value="2nd form">2nd form</td></tr><tr><td><input type="text" name="os1" maxlength="200"></td></tr>
</table>
<input type="hidden" name="encrypted" value=" encryption here ">
<input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_paynowCC_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
<img alt="" border="0" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" width="1" height="1">
</form>
表格一
中二
这些字段需要帮助吗?我会给你3张赞成票,因为我有3个stackoverflow帐户和一个被接受的答案——这是我至少能做的:)
PS
我无法使表单验证工作,因此我试图隐藏提交按钮,除非填写表单,但到目前为止,这也不起作用
更新-@Last Rose Studios
function has_id(id){try{var tmp=document.getElementById(id).value;}catch(e){return false;}
return true;}
function has_name(nm){try{var tmp=cfrm.nm.type;}catch(e){return false;}
return true;}
function $$(id){if(!has_id(id)&&!has_name(id)){alert("Field "+id+" does not exist!\n Form validation configuration error.");return false;}
if(has_id(id)){return document.getElementById(id).value;}else{return;}}
function $val(id){return document.getElementById(id);}
function trim(id){$val(id).value=$val(id).value.replace(/^\s+/,'').replace(/\s+$/,'');}
var required={field:[],add:function(name,type,mess){this.field[this.field.length]=[name,type,mess];},out:function(){return this.field;},clear:function(){this.field=[];}};var validate={check:function(cform){var error_message='Please fix the following errors:\n\n';var mess_part='';var to_focus='';var tmp=true;for(var i=0;i<required.field.length;i++){if(this.checkit(required.field[i][0],required.field[i][1],cform)){}else{error_message=error_message+required.field[i][2]+' must be supplied\n';if(has_id(required.field[i][0])&&to_focus.length===0){to_focus=required.field[i][0];}
tmp=false;}}
if(!tmp){alert(error_message);}
if(to_focus.length>0){document.getElementById(to_focus).focus();}
return tmp;},checkit:function(cvalue,ctype,cform){if(ctype=="NOT_EMPTY"){if(this.trim($$(cvalue)).length<1){return false;}else{return true;}}else if(ctype=="EMAIL"){exp=/^[a-zA-Z0-9._%-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;if($$(cvalue).match(exp)==null){return false;}else{return true;}}},trim:function(s){if(s.length>0){return s.replace(/^\s+/,'').replace(/\s+$/,'');}else{return s;}}};
我尝试了很多验证方法,最后我使用了我朋友的联系人表单验证lol
validation.js
function has_id(id){try{var tmp=document.getElementById(id).value;}catch(e){return false;}
return true;}
function has_name(nm){try{var tmp=cfrm.nm.type;}catch(e){return false;}
return true;}
function $$(id){if(!has_id(id)&&!has_name(id)){alert("Field "+id+" does not exist!\n Form validation configuration error.");return false;}
if(has_id(id)){return document.getElementById(id).value;}else{return;}}
function $val(id){return document.getElementById(id);}
function trim(id){$val(id).value=$val(id).value.replace(/^\s+/,'').replace(/\s+$/,'');}
var required={field:[],add:function(name,type,mess){this.field[this.field.length]=[name,type,mess];},out:function(){return this.field;},clear:function(){this.field=[];}};var validate={check:function(cform){var error_message='Please fix the following errors:\n\n';var mess_part='';var to_focus='';var tmp=true;for(var i=0;i<required.field.length;i++){if(this.checkit(required.field[i][0],required.field[i][1],cform)){}else{error_message=error_message+required.field[i][2]+' must be supplied\n';if(has_id(required.field[i][0])&&to_focus.length===0){to_focus=required.field[i][0];}
tmp=false;}}
if(!tmp){alert(error_message);}
if(to_focus.length>0){document.getElementById(to_focus).focus();}
return tmp;},checkit:function(cvalue,ctype,cform){if(ctype=="NOT_EMPTY"){if(this.trim($$(cvalue)).length<1){return false;}else{return true;}}else if(ctype=="EMAIL"){exp=/^[a-zA-Z0-9._%-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;if($$(cvalue).match(exp)==null){return false;}else{return true;}}},trim:function(s){if(s.length>0){return s.replace(/^\s+/,'').replace(/\s+$/,'');}else{return s;}}};
函数具有_id(id){try{var tmp=document.getElementById(id).value;}catch(e){return false;}
返回true;}
函数具有_name(nm){try{var tmp=cfrm.nm.type;}catch(e){return false;}
返回true;}
函数$$(id){如果(!has_id(id)&&&!has_name(id)){警报(“字段”+id+“不存在!\n表单验证配置错误”);返回false;}
if(has_id(id)){return document.getElementById(id).value;}else{return;}
函数$val(id){return document.getElementById(id);}
函数trim(id){$val(id).value=$val(id).value.replace(/^\s+/,'').replace(/\s+$/,'');}
所需变量={field:[],add:function(name,type,mess){this.field[this.field.length]=[name,type,mess];},out:function(){return this.field;},clear:function(){this.field=[];};var validate={check:function(cform){var error_message='请修复以下错误:\n\n';var mess_part='';var to_focus='';var tmp=true;for(var i=0;i0){document.getElementById(to_focus).focus()}
return tmp;},checkit:function(cvalue,ctype,cform){if(ctype==“NOT_EMPTY”){if(this.trim($$(cvalue)).length0{return s.replace(/^\s+/,'').replace(/\s+$/,'');否则{return s;};
paypal.html
<script src="validation.js"></script>
<script>
required.add('os0','NOT_EMPTY','1st form');
required.add('os1','NOT_EMPTY','2nd form')
</script>
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" onsubmit="return validate.check(this)">
<input type="hidden" name="cmd" value="_s-xclick">
<table>
<tr><td><input type="hidden" name="on0" value="1st form">1st form<span class="required_star"> * </span></td></tr><tr><td><input type="text" name="os0" maxlength="200" id="os0" class="required"></td></tr>
<tr><td><input type="hidden" name="on1" value="2nd form">2nd form<span class="required_star"> * </span></td></tr><tr><td><input type="text" id="os1" name="os1" maxlength="200" class="required"></td></tr>
</table>
<input type="hidden" name="encrypted" value=" encryption here
">
<input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_paynowCC_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
<img alt="" border="0" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" width="1" height="1">
</form>
必填项。添加('os0'、'NOT_EMPTY'、'1st form');
必填项。添加('os1'、'NOT_EMPTY'、'2nd form')
第一表格*
第二表格*
我使用了JavaScript,然后我读了你的答案,但我不会改变,因为它现在可以工作了
我还有两个小问题
1-是否可以从paypal页面中删除描述框参见此
2-支付完成后,paypal没有重定向到感谢页面,我创建了许多按钮,只是没有重定向(我没有取消页面)如果不修改按钮代码,您需要客户端解决方案(如您所述),因为帖子将直接转到paypal(https://www.paypal.com/cgi-bin/webscr).
或者,您可以将帖子提交到服务器上的中间页面,并从PayPal转发,以便包含服务器端检查(仅当字段是绝对必需的,例如JavaScript被禁用时).您可以使用html5输入属性“required”,这将照顾到一些浏览器,对于其他浏览器,您必须使用javascript来验证表单 如果您不介意给您一个简单的例子,我将使用jQuery
$('form').submit(function(e){
flag = false;
$('[name="os0"], [name="os1"]').css('background','').each(function(){
el=$(this);
if(el.val().length == 0){
flag = true;
el.css('background','red');
}
});
if(flag){
return false;
}
});
这将阻止表单提交,除非两个字段都已填写。我还通过将输入背景设置为红色(可选)为用户添加了一些反馈
当然,这只适用于启用了javascript的现代浏览器或旧浏览器,但仍有一小部分浏览器会通过。在这种情况下,Robert建议您在服务器上发布中间页面可能是一个好主意。我将尝试使用javascript的普通方法,但我认为它不会起作用我已经答应给任何帮助我的人3票,现在还有悬赏:)请为你可能有的任何其他问题创建一个新的问题,而不是将它们混合到这个问题中。只需再问一个小问题,你就可以从paypal页面中删除描述框。请看,paypal Button在paymen之后不会重定向到example/thankyou.phpt、 为什么?谢谢你