2012-07-23 116 views
0

我有一个电子商务存储正在困扰用户选择一种运输方式,允许他们提供自己的帐号,然后在结帐时不提供帐号。Javascript根据2条IF语句更改页面内容

FORM第1部分:

<dt> 
<span class="Required FormFieldRequired" style="visibility: hidden">*</span> 
<span class="FormFieldLabel">Shipping Account Number:</span> 
</dt> 
<dd> 
<input class="FormFieldId" type="hidden" value="25"> 
<input class="FormFieldFormId" type="hidden" value="2"> 
<input class="FormFieldType" type="hidden" value="singleline"> 
<input class="FormFieldPrivateId" type="hidden" value=""> 
<input id="FormField_25" class="Textbox Field200 FormField" type="text" value="Fill This If Using Your Own Shipping Account" name="FormField[2][25]"> 
</dd> 

FORM第2部分:

<span class="FormFieldLabel">Shipping Account Number:</span> 
<dd> 
<input class="FormFieldId" type="hidden" value="26"> 
<input class="FormFieldFormId" type="hidden" value="3"> 
<input class="FormFieldType" type="hidden" value="singleline"> 
<input class="FormFieldPrivateId" type="hidden" value=""> 
<input id="FormField_26" class="Textbox Field200 FormField" type="text" value="Fill This If Using Your Own Shipping Account" name="FormField[3][26]"> 
</dd> 

这两者都是在2周独立的div一个PHP生成的页面上(PHP我们无法控制),即每当你按下“下一步”按钮时,它们所处的div会隐藏起来,显示下面的div。

邮费然后经由以下单选按钮选择:

<ul class="ShippingProviderList"> 
<li> 
<label id="shippingMethod_500d6aa9a300e_1"> 
<input id="shippingCheck_500d6aa9a300e" type="radio" value="1" name="selectedShippingMethod[500d6aa9a300e]"> 
<span class="ShipperName">My Own Shipping Account (Please make sure that account number is specified within your account page or item will not ship!)</span> 
<em class="ShipperPrice ProductPrice">$0.00</em> 
</label> 
</li> 

的500d6片断的ID是动态生成的。

我需要帮助设计一个JavaScript代码段,这样,如果选择了无线电圈把这个页面上,如果没有船帐号表单字段有航运价值,它只是隐藏

<input type="submit" value="Continue"> 

按钮,如果可能的话,将其替换为文字说什么(我可以自定义) - 不幸的是,我不知道JavaScript,只有一些PHP,当然还有HTML/CSS。如果有人愿意帮助提供资源或链接以帮助我走上正确的道路,那将会非常有帮助。谢谢!

+0

最简单的方法是包含jQuery并使用隐藏方法http://api.jquery.com/hide/ – Q2Ftb3k 2012-07-23 15:33:11

+0

他无法控制PHP生成页面,那么他应该如何添加jquery脚本? – Tomer 2012-07-23 15:34:26

+0

PHP页面生成内容,但我确实有办法将一段代码作弊。基本上我通过管理面板告诉系统添加另一个表单字段,但对于名称,我欺骗并注入JavaScript。它不是“好”,但它的解决方法我有:) – NRGdallas 2012-07-23 15:36:53

回答

2

更改<input type="submit" value="Continue"><input type="submit" id="btn" value="Continue" hidden >我们会在默认情况下隐藏它(除非您使用php填写表单,在这种情况下,您可以在那里查看是否需要)。

var radio = document.getElementById('shippingCheck_500d6aa9a300e'), 
    input1 = document.getElementById('FormField_25'), 
    input2 = document.getElementById('FormField_26'), 
    btn = document.getElementById('btn'); // yes you will need to add an identifier to the button itself. name or id would work. if name you would document.forms[frmName or 0 for the first form].elements[buttonName] 

document.forms[0].onchange = function() { // this assumes you have only one form. change the 0 to a name or proper index if need be. 
    if(radio.checked && input1.value.length > 0 && input2.value.length > 0) { 
     btn.hidden = false; 
    } else { 
     btn.hidden = true; 
    } 
}; 

我知道你不控制哪些ID值......那么,你将不得不名称来选择或产生一些用PHP JS来保存这些值。

希望这会有所帮助。

+0

解决与rlemon聊天;所使用的最终的代码如下: NRGdallas 2012-07-23 19:20:00