2010-09-07 42 views
1

喂友工作,按钮类型提交不是IE6.0

我需要在2行上文本的按钮。文字的长度超过了我的空间。:-)图像不符合我的偏好。

我用下面的代码

<tr> 
     <td align="center"> 
      <button type="submit" name="add_invoice" id="buttonstyle"> 
        Add to Ready for<br /> 
        Invoicing 
       </button> 
     </td> 
    </tr> 

    <tr> 
    <td align="center" colspan="2"> 
     <input type="submit" name="delete" value="Delete"> 
    </td> 
    </tr> 

这在IE 7.0的工作还不错。

但是,在IE 6.0中,尽管我单击第二个按钮delete,在$ _POST中,它将返回两个按钮的值。 它具有[add_invoice]和[delete]的值。所以我无法弄清楚哪一个被点击(仅在IE 6.0中)。

请帮我理解这种行为。让我知道如果你知道任何其他的选择。

提前致谢!

回答

3

在IE中<button>元素是buggy。尝试使用<input type="submit">

编辑:既然你需要它跨越2条线,我建议造型input submit或创建一个图像,不幸的是。

编辑#2:你也可以使用<!--[if IE 6]>条件将input type='image'提供给IE6和button给其他浏览器,如果它真的很重要。

+0

正如他们所说的,他们需要一个带有两条文本行的按钮,这很可能会排除''。 – Joey 2010-09-07 15:21:32

+0

我说只是使用一个'输入类型=“图像”'与alt属性,并完成它。它没有错。你也可以用JS修改'submit'上的'button' innerHTML的值,但这太过于夸张了。 – 2010-09-07 15:24:13

+0

感谢您的回复。我的客户的网络速度非常差,我创建的网页已经有很多图片。所以我想避免图像。 – satya 2010-09-07 15:30:05

1

我不知道这是否有效,但您可以使用javascript onClick事件触发提交。

<tr> 
    <td align="center"> 
     <button type="submit" onClick="document.formname.submit();" name="add_invoice" id="buttonstyle"> 
       Add to Ready for<br /> 
       Invoicing 
      </button> 
    </td> 
</tr> 

记住与实际表格名称来代替formname如果这是工作,我不知道这是否会如我没有IE6设置,我无法测试它。

UPDATE

我不知道这将是值得与否,但你可以将它设置这样的(或函数)具有值被改变。

<tr> 
    <td align="center"> 
     <button type="submit" onClick="document.formname.delete.value = ''; document.formname.submit();" name="add_invoice" id="buttonstyle"> 
       Add to Ready for<br /> 
       Invoicing 
      </button> 
    </td> 

应该将删除值设置为空。这是骇人听闻的,我不确定我是否会这样做,但它是实现它的一种方式。但是,我可能会将它存储在一个函数中,然后调用该函数。出于演示/测试的原因,我没有这样做这个例子。

+0

感谢您的回复。我也试过这个,但是在$ _POST中它返回两个按钮的值。 – satya 2010-09-07 15:50:08