[問題] 請教ASPX的高手(驗證方面)

看板Web_Design作者 (小紀)時間16年前 (2009/06/07 14:55), 編輯推噓1(104)
留言5則, 3人參與, 最新討論串1/1
小弟目前正在做購物車 不過卡在一個地方 就是數量欄位的驗證 我先簡單說明我的做的方式 我拉個表格裡面有 第一欄(產品編號) 第二欄(表單括住數量欄位、加入購物車按紐 隱藏欄位繫結產品編號) 隱藏欄位是為了能夠在新增時能夠知道新增哪一筆編號的產品 整個表格有使用重覆區域 問題在於數量欄位 因為不能讓消費者輸入空值或是負數中文字等等 我有寫個JAVE的先判斷"空值"做測試 如果沒有使用重複區 意指產品顯示單筆時 它可以判斷 但如果使用了重複區域 它就無法判斷 我目前測試出來好像是使用了重複區域時他無法判斷是哪個表單 在此求助各位的幫忙 ^^ 以下是程式碼 (重複跟未重複) 未重複 <MM:DataSet id="DataSet1" runat="Server" IsStoredProcedure="false" ConnectionString='<%# System.Configuration.ConfigurationSettings.AppSettings("MM_CONNECTION_STRING_gow") %>' DatabaseType='<%# System.Configuration.ConfigurationSettings.AppSettings("MM_CONNECTION_DATABASETYPE_gow") %>' CommandText='<%# "SELECT * FROM dbo.A5_Product" %>' Debug="true" ></MM:DataSet> <div align="center"> <table width="326" border="1"> <tr> <td width="115"><%# DataSet1.FieldValue("p_no", Container) %></td> <td width="201"><form action="" method='POST' name='form1' id="form1" onclick="return cc()"> 數量 <label> <input name="Submit" type="submit" value="go"/> </label> <input name="tno" type="hidden" id="tno" value='<%# DataSet1.FieldValue("p_no", Container) %>' /> <input type="hidden" name="MM_insert" value="form1"> <label> <input name="qty" type="text" id="qty" value="1" /> </label> </form></td> </tr> </table> </div> </body> </html> <SCRIPT > <!-- function cc(a) { var Err = true //var b = document.getelementbyid("qty"+a); if (document.form1.qty.value == "") { Err = false ; } //------------------------------------------------------ if (Err) { alert("OK") } else { alert('error!') } return Err } //--> </SCRIPT> 重複區域時 <MM:DataSet id="DataSet1" runat="Server" IsStoredProcedure="false" ConnectionString='<%# System.Configuration.ConfigurationSettings.AppSettings("MM_CONNECTION_STRING_gow") %>' DatabaseType='<%# System.Configuration.ConfigurationSettings.AppSettings("MM_CONNECTION_DATABASETYPE_gow") %>' CommandText='<%# "SELECT * FROM dbo.A5_Product" %>' Debug="true" PageSize="10" CurrentPage='<%# IIf((Request.QueryString("DataSet1_CurrentPage") <> Nothing), Request.QueryString("DataSet1_CurrentPage"), 0) %>' ></MM:DataSet> <div align="center"> <table width="326" border="1"> <ASP:Repeater runat="server" DataSource='<%# DataSet1.DefaultView %>'> <ItemTemplate> <tr> <td width="115"><%# DataSet1.FieldValue("p_no", Container) %></td> <td width="201"><form action="" method='POST' name='form1' id="form1" onclick="return cc()"> 數量 <label> <input name="Submit" type="submit" value="go"/> </label> <input name="tno" type="hidden" id="tno" value='<%# DataSet1.FieldValue("p_no", Container) %>' /> <input type="hidden" name="MM_insert" value="form1"> <label> <input name="qty" type="text" id="qty" value="1" /> </label> </form></td> </tr> </ItemTemplate> </ASP:Repeater> </table> </div> </body> </html> <SCRIPT > <!-- function cc(a) { var Err = true //var b = document.getelementbyid("qty"+a); if (document.form1.qty.value == "") { Err = false ; } //------------------------------------------------------ if (Err) { alert("OK") } else { alert('error!') } return Err } //--> </SCRIPT> -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.130.149.50

06/07 15:14, , 1F
數量欄位可使用AJAX Control Toolkit裡的TextBox限制輸入內容
06/07 15:14, 1F

06/07 17:32, , 2F
@@ 小弟不太了解意思 可以在說明一下嗎?
06/07 17:32, 2F

06/07 18:19, , 3F
我記得IDE本身就有內建驗證的功能可以直接套了
06/07 18:19, 3F

06/07 22:07, , 4F
我有使用過它內建的驗證 因為我表單不能用runat="server"
06/07 22:07, 4F

06/07 22:08, , 5F
因為重複區域新增的關係 表單如果有runat="server"就失敗了
06/07 22:08, 5F
文章代碼(AID): #1AAsHKnj (Web_Design)