如何使用复选框启用/禁用行?

时间:2016-07-27 13:32:27

标签: javascript html css arrays

我正在尝试创建一个表单,当您单击复选框时,它必须启用表单的行,但它不起作用...

例如,点击它上面有一个复选框,它必须启用其余行

我会感激任何帮助,

提前致谢。

这就是我所拥有的:



<HTML>
<HEAD>
<TITLE>Online Shopping</TITLE>
<SCRIPT>

//Variables Globales

var RowsInForm = 4 

var ProductsInList = 4 

var SalesTaxRate = 0.12 

var TaxableState = "IVA(12%)" 

var ProdSubscript = 0 

function MakeArray(n) {

this.length = n

for (var i = 1; i<= n; i++) {

this[i] = 0

}

return this

}



function BuildZeroArray(n) {

this.length = n

for (var i = 0; i<= n; i++) {

this[i] = 0

}

return this

}



function prodobj(name, unitprice) {

this.name = name

this.unitprice = unitprice

}



function ordobj(prodsub, qty, unitprice, extprice) {

this.prodsub = prodsub

this.qty = qty

this.unitprice = unitprice

this.extprice = extprice

}



function strToZero(anyval) {

anyval = ""+anyval

if (anyval.substring(0,1) < "0" || anyval.substring(0,1) > "9") {

anyval = "0"

}

return eval(anyval)

}



function updateRow(rownum){

var exec = 'ProdSubscript = document.ordform.prodchosen'+rownum+'.selectedIndex'

eval (exec)

ordData[rownum].prodsub=ProdSubscript 

var exec='tempqty=document.ordform.qty'+rownum+'.value'

eval (exec)

ordData[rownum].qty = strToZero(tempqty) 
ordData[rownum].unitprice=prodlist[ProdSubscript].unitprice

ordData[rownum].extprice = (ordData[rownum].qty) * ordData[rownum].unitprice

var exec = 'document.ordform.unitprice'+rownum+'.value = currencyPad(ordData['+rownum+'].unitprice,10)'

eval (exec)

var exec = 'document.ordform.extprice'+rownum+'.value = currencyPad(ordData['+rownum+'].extprice,10)'

eval (exec)

updateTotals() 

}



function updateTotals() {

var subtotal = 0

for (var i=1; i<=RowsInForm; i++) {

subtotal = subtotal + ordData[i].extprice

}

document.ordform.subtotal.value = currencyPad(subtotal,10)

salestax = 0


if (document.ordform.Taxable.checked) {

salestax = SalesTaxRate * subtotal * 0.30

}



document.ordform.salestax.value = currencyPad(salestax,10)

document.ordform.grandtotal.value = currencyPad(subtotal+salestax,10)

}






function copyAddress() {

document.ordform.ShipName.value = document.ordform.billName.value

document.ordform.ShipCompany.value = document.ordform.billCompany.value

document.ordform.ShipAdd1.value = document.ordform.billAdd1.value

document.ordform.ShipAdd2.value = document.ordform.billAdd2.value

document.ordform.ShipCSZ.value = document.ordform.billCSZ.value

}

function currencyPad(anynum,width) {

//returns number as string in $xxx,xxx.xx format.

anynum = "" + eval(anynum)

//evaluate (in case an expression sent)

intnum = parseInt(anynum)

//isolate integer portion

intstr = ""+intnum

//add comma in thousands place.

if (intnum >= 1000) {

intlen = intstr.length

temp1=parseInt(""+(intnum/1000))

temp2=intstr.substring(intlen-3,intlen)

intstr = temp1+","+temp2

}

if (intnum >= 1000000) {

intlen = intstr.length

temp1=parseInt(""+(intnum/1000000))

temp2=intstr.substring(intlen-7,intlen)

intstr = temp1+","+temp2

}

decnum = Math.abs(parseFloat(anynum)-parseInt(anynum)) //isolate decimal portion

decnum = decnum * 100 // multiply decimal portion by 100.

decstr = "" + Math.abs(Math.round(decnum))

while (decstr.length < 2) {

decstr += "0"

}

retval = intstr + "." + decstr

if (intnum < 0) {

retval=retval.substring(1,retval.length)

retval="("+retval+")"

}

retval = "BsF"+retval

while (retval.length < width){

retval=" "+retval

}

return retval

}

</SCRIPT>

</HEAD>
<BODY aLink=#8a8a8a bgColor=#ffffff 
link=#ff0000 text=#000000 vLink=#215e21>
<H3 align=center><FONT color=#0000ff><FONT size=+1></FONT></FONT></H3>
<P><BR>
<SCRIPT>

//Create a new array named prodlist with six elements.

prodlist = new BuildZeroArray(ProductsInList) //Refers to global variable ProductsInList

//Populate that array with this product info.

//The first item, prodlist[0] must be a "non-product" with

//a unitprice of zero.

prodlist[0] = new prodobj('-none-',0)

prodlist[1] = new prodobj('Apple iPhone ',5200)

prodlist[2] = new prodobj('Pc Laptop',3520)

prodlist[3] = new prodobj('Impresora',4790)

prodlist[4] = new prodobj('TV',8650)



//Create a new array, named ordData, that contains empty Order Objects.

ordData = new MakeArray(RowsInForm)

for (var i=1; i<= RowsInForm; i++) {

ordData[i] = new ordobj(0,0,0,0)}

</SCRIPT>

<FORM name=ordform></P>
<CENTER>
<P><! Display the table header></P></CENTER>
<TABLE align=center border=1>
<CENTER>
<TBODY>
<TR>
<TH width=192>
<CENTER><B>Product</B></CENTER></TH>
<TH width=72>
<CENTER><B>Qty</B></CENTER></TH>
<TH width=120>
<CENTER><B>Unit Price</B></CENTER></TH>
<TH width=120>
<CENTER><B>Ext Price</B></CENTER></TH>
<P><INPUT type=checkbox value=true> 

<SCRIPT>

for (var rownum = 1;rownum <= RowsInForm; rownum++) {

document.write('<TR><TD WIDTH=192>')

document.write('<SELECT NAME="prodchosen'+rownum+'" onChange= "updateRow('+rownum+')">')

for (i = 0; i <= ProductsInList; i++) {

document.write ("<OPTION>"+prodlist[i].name)

} document.write ('</SELECT>')

document.write ('</TD><TD WIDTH=72><CENTER><INPUT NAME="qty'+rownum+'" VALUE=""')

document.write ('MAXLENGTH="3" SIZE=3 onChange="updateRow('+rownum+')"></CENTER>')

document.write ('</TD><TD WIDTH=120><CENTER>')

document.write ('<INPUT NAME="unitprice'+rownum+'" VALUE="" MAXLENGTH="10"')

document.write ('SIZE=10 onfocus="this.blur()"></CENTER>')

document.write ('</TD><TD WIDTH=120><CENTER>')

document.write ('<INPUT NAME="extprice'+rownum+'" VALUE="" MAXLENGTH="10"')

document.write ('SIZE=10 onfocus = "this.blur()"></CENTER>')

document.write ('</TD></TR>')

}

</SCRIPT>

<P></P></CENTER></TBODY></TABLE>
<CENTER>
<P><! Second table holds subtotal, sales tax, grand total></P></CENTER>
<TABLE>
<TBODY>
<TR>
<TD width=264></TD>
<TD width=120>
<CENTER>
<P>Subtotal: </P></CENTER></TD>
<TD width=120>
<CENTER>
<P><INPUT maxLength=10 name=subtotal onfocus=this.blur() 
size=10></P></CENTER></TD></TR>
<TR>
<TD width=264>
<P><INPUT name=Taxable onclick=updateTotals() type=checkbox value=true> 

<SCRIPT>

document.write(TaxableState)

</SCRIPT>
</P></TD>
<TD width=120>
<CENTER>
<P>IVA:</P></CENTER></TD>
<TD width=120>
<CENTER>
<P><INPUT maxLength=10 name=salestax onfocus=this.blur() 
size=10></P></CENTER></TD></TR>
<TR>
<TD width=264>

<TD width=120>
<CENTER>
<P>Total: </P></CENTER></TD>
<TD width=120>
<CENTER>
<P><INPUT maxLength=10 name=grandtotal onfocus=this.blur() 
size=10></P></CENTER></TD></TR></TBODY></TABLE>
<!--<P><B>Bill To:</B> <! Onto Bill To and Ship To address portions of the form></P>
<TABLE align=center border=1>
<TBODY>
<TR>
<TD width=120>
<P>Name:</P></TD>
<TD width=408>
<P><INPUT maxLength=75 name=billName size=50></P></TD></TR>
<TR>
<TD width=120>
<P>Company:</P></TD>
<TD width=408>
<P><INPUT maxLength=75 name=billCompany size=50> </P></TD></TR>
<TR>
<TD width=120>
<P>Address1:</P></TD>
<TD width=408>
<P><INPUT maxLength=75 name=billAdd1 size=50></P></TD></TR>
<TR>
<TD width=120>
<P>Address2:</P></TD>
<TD width=408>
<P><INPUT maxLength=75 name=billAdd2 size=50> </P></TD></TR>
<TR>
<TD width=120>
<P>City, State, Zip:</P></TD>
<TD width=408>
<P><INPUT maxLength=75 name=billCSZ size=50></P></TD></TR>
<TR>
<TD width=120>
<P>Phone:</P></TD>
<TD width=408>
<P><INPUT maxLength=25 name=Phone size=25></P></TD></TR>
<TR>
<TD width=120>
<P>Email address:</P></TD>
<TD width=408>
<P><INPUT maxLength=75 name=email size=40></P></TD></TR></TBODY></TABLE>
<CENTER>
<P><INPUT onclick=copyAddress() type=button value="Copy 'Bill To' info to 'Ship To' blanks"> 
</P></CENTER>
<P><B>Ship To:</B> </P>
<TABLE align=center border=1>
<TBODY>
<TR>
<TD width=120>
<P>Name:</P></TD>
<TD width=408>
<P><INPUT maxLength=75 name=ShipName size=50></P></TD></TR>
<TR>
<TD width=120>
<P>Company:</P></TD>
<TD width=408>
<P><INPUT maxLength=75 name=ShipCompany size=50></P></TD></TR>
<TR>
<TD width=120>
<P>Address1:</P></TD>
<TD width=408>
<P><INPUT maxLength=75 name=ShipAdd1 size=50></P></TD></TR>
<TR>
<TD width=120>
<P>Address2:</P></TD>
<TD width=408>
<P><INPUT maxLength=75 name=ShipAdd2 size=50></P></TD></TR>
<TR>
<TD width=120>
<P>City, State, Zip:</P></TD>
<TD width=408>
<P><INPUT maxLength=75 name=ShipCSZ size=50></P></TD></TR></TBODY></TABLE>
<P><! In real life, you'd want to omit the whole onclick... thing in the input tag below. ><! Which is to say you want to get rid of... ><! onClick = "alert('I do not really get submitted anywhere. But thanks for trying me!')" ><INPUT onclick="alert('I do not really get submitted anywhere. But thanks for trying me!')" type=submit value=Submit> 
<INPUT type=reset value=Reset> <! In real life, you can omit the entire input tag (i.e. the entire line) below ><INPUT onclick="self.location = 'jsindex.htm'" type=button value="All Done"> 
</FORM></P>-->


</body>
</html>
 
 
 
&#13;
&#13;
&#13;

0 个答案:

没有答案