2016-04-22 86 views
0

我有一個頁面,並說2個文本框。用戶在文本框中輸入詳細信息,然後單擊添加按鈕,然後添加到Gridview。 我也有一個提交按鈕,允許用戶提交輸入的詳細信息。帶有按鈕的Gridview項目條款

對於前:

TextBox1 : 
TextBox2 : 

    Add to Grid 

Submit 

這是我都試過了。我對這些文本框的一類,我jQuery的檢查類似下面

function Checktxtboxes() { 
    var flag = false; 
    var nonempty = $('.MyClass').filter(function() { 
     if ($(this).val().length = 0) { 
      flag=true; 
      return false; 
     } 
    }); 
    if (!flag) { 
     // alert("Add to Grid"); 
     return false; 
    } 
} 

但這種方法可行,但好好嘗試一下做我真正想要的。 用戶可能會停止向Grid中添加行幾次,但如果這些文本框中的任何一個包含某些值,並且他們沒有轉到網格行,則只會出現警報

現在我遇到了問題。第一次用戶單擊添加到網格,第二次他在兩個文本框中輸入詳細信息,但忘記單擊添加到網格。 直接點擊提交。所以現在技術上他只輸入一行到Grid。但據他介紹,他進了兩個。 如何解決這個錯誤?當他在文本框中輸入內容時忘記點擊添加到網格按鈕時,如何阻止用戶不點擊提交內容。下面的js函數 的被稱爲上提交按鈕點擊

function submitjavascript() { 
    var totalRows = $("#<%=gridview1.ClientID %> tr").length; 
    if (totalRows != 0) { 
     //do something 

     } 
     else { 
      //do something 
     } 
    } 
    else { 
     alert("Please Add details to Grid"); 
     return false; 
    } 
} 

我完全死了這個問題

+0

- 實現什麼?您想從用戶體驗角度解決這個問題嗎? – Andrei

+0

是啊我該如何解決這個錯誤是我的問題。 –

+0

如果在文本框中有一些文本,你可以禁用提交按鈕 –

回答

1

我不是很熟悉JavaScript,但在vb.net我認爲有2種方法

您可以使文本框添加到網格按鈕點擊後清除自身,並在Submitbutton_click事件時,可以爲您在這些文本框的文字,是這樣的:

Private Sub SubmitButton_Click event 
    If textbox1.text <> "" or textbox2.text <> "" Then 
    'Add your alert code here, or a pop up window or whatever. 

    ElseIf textbox1.text = "" and textbox2.text = "" Then 'User has already clicked Add to grid button so the Textboxes are clear. 
    'Here goes the submit code action. 
    End if 
End sub 

或者當文本框和文本改變了用戶訪問,打開提交按鈕的Enabled功能False當添加到網格按鈕按下此相同的屬性設置爲True

希望這有助於

編輯好了,所以有點研究和實驗後,這是我來到,

<form id="form1"> 
    <input name="Details" type="text" id="idField2" /> 
    <input name="Details" type="text" id="idField3" /> 
    <input name="Details" type="text" id="idField4" /> 
    <input name="Details" type="text" id="idField5" /> 
    <input name="Details" type="text" id="idField6" /> 
    <input name="Details" type="text" id="idField7" /> 
    <input name="Details" type="text" id="idField8" /> 
    <input name="Details" type="text" id="idField9" /> 
    <input name="Details" type="text" id="idField10" /> 
</form> 

和你的js提交按鈕會是這樣:

function submitjavascript() 
{ 
    var allTbs = document.getElementsByName("Details"); 
    for (var i = 0, max = allTbs.length; i < max; i++) 
     { 
     if (allTbs[i].value!="") 
      { 
      alert("Please Add details to Grid"); 
      break; 
      } 
     } 
} 

但是有一點我注意到的是,每當警報消息出現,並點擊確定,文本框清除自己,說實話,我不知道爲什麼,就像我說的,林相當新的JS

+0

在發佈我的問題之前,我已經有了這個解決方案。但實際上我有兩個以上的文本框。我在想如果我能找到更好的解決方案與JQuery或什麼的。因爲如果項目不斷增長並且文本框不斷添加,那麼我必須在提交時檢查10個以上的文本框。我其實這個啓用和禁用功能 –

+0

@nysu請檢查我的編輯 – abichango

+0

這似乎很有希望。但是,從用戶的角度來看,這仍然是一個錯誤。如果用戶只有兩行添加到網格,然後他必須點擊提交,該怎麼辦?例如,如果一個家庭有三個孩子,用戶輸入每個孩子並添加網格和提交。另一個用戶只有一個孩子,然後他只會添加一行,然後點擊提交。在這種情況下,這不會工作 –

1

您可以禁用提交buttun直到文本框是不是空的:「如何實現這個」

 $("#txtboxId").change(function() { 
      if ($(this).val() == "") { 
       $("#submitBtn").prop('disabled', false); 
      } else { 
       $("#submitBtn").prop('disabled', true); 
      } 
     }) 
+0

第一件事。如果不只是一個文本框。所以我需要爲所有人做這個?相反,我在這些文本框中添加了一個類。但在添加一行/兩行到網格之後,它可以啓用。但是,如果用戶輸入文本並忘記點擊添加網格行,那麼是我正在談論的問題 –