2016-04-22 82 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

第一件事。如果不只是一个文本框。所以我需要为所有人做这个?相反,我在这些文本框中添加了一个类。但在添加一行/两行到网格之后,它可以启用。但是,如果用户输入文本并忘记点击添加网格行,那么是我正在谈论的问题 –