为什么文本框会阻止div被关闭?

时间:2015-12-30 13:27:00

标签: c# html textbox

我有一个带食物桌的页面,当我想添加新食物时,我有一个"插入食物"的按钮,当点击时显示带有标签的小div,文本框和插入的东西,它改变了它的文字"插入"到"取消"。这是代码:

 protected void insertFoodBTN_Click(object sender, EventArgs e)
{
    if (insertFoodBTN.Text == "Insert Food")
    {
        nameF.Visible = true;
        nameFTB.Visible = true;
        priceF.Visible = true;
        priceFTB.Visible = true;
        ... etc ...
        addFBTN.Visible = true;
        insertDiv.Style["display"] = "block";
        insertFoodBTN.Text = "Cancel Insertion";
    }
    else
    {
        nameF.Visible = false;
        nameFTB.Visible = false;
        priceF.Visible = false;
        priceFTB.Visible = false;
        ... etc ...
        addFBTN.Visible = false;
        insertDiv.Style["display"] = "none";
        insertFoodBTN.Text = "Insert Food";
    }
}

工作正常 我的问题是,当我想通过点击相同的"插入食物"按钮它甚至不输入该insertButton_Clicked的功能。 注意 - 它的文本是"取消插入",但ID没有被更改,所以它基本上应该进入。

在查询之后 - 它变成了两个第一个文本框导致这一点,因为当我删除它们时,插入div再次消失,就像之前一样。 我不知道为什么,因为我之后还有另一个文本框,它不会阻止隐藏div。

我不知道为什么会这样。谢谢你的帮助。

[点击"插入食物"第一次,div打开] [1]

2 个答案:

答案 0 :(得分:1)

不使用div尝试使用Panel包围表单。 而不是一个按钮使用两个。

protected void insertFoodBTN_Click(object sender, EventArgs e)
{
    pnInsert.Visible = true; 
    cancelFoodBTN.Visible = true;
    insertFoodBTN.Visble = false;
}


protected void cancelFoodBTN_Click(object sender, EventArgs e)
{
    pnInsert.Visible = false;
    cancelFoodBTN.Visible = false;
    insertFoodBTN.Visble = true;
}

答案 1 :(得分:0)

由于您在评论中说明验证程序阻止了表单的提交,因此当其角色发生变化时,解决方案是enable/disable validation for the button

protected void insertFoodBTN_Click(object sender, EventArgs e)
{
    if (insertFoodBTN.Text == "Insert Food")
    {
        ...
        insertFoodBTN.Text = "Cancel Insertion";
        insertFootBTN.CausesValidation = false; // Cancel button does not require valid data
    }
    else
    {
        ...
        insertFoodBTN.Text = "Insert Food";
        insertFootBTN.CausesValidation = true;
    }
}

注意:由于按钮具有两个不同的功能,我建议改为创建两个按钮,其中只有一个在给定时间可见。这样,您不必每次都“重新配置”按钮(这也会导致您复制诸如ASP.NET标记和代码中的按钮文本之类的内容,违反DRY principle

相关问题