为啥在ie浏览器当文本框为空,可以弹出提示框,在firefox中无法弹出来

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为啥在ie浏览器当文本框为空,可以弹出提示框,在firefox中无法弹出来相关的知识,希望对你有一定的参考价值。

<script>
function allsubmit(e)
if(window.event)
e=window.event;
var obj;
var T=true;
if(e.srcElement)
obj=e.srcElement;

else
obj=e.target;

for(var i=1;i<=5;i++)
if(eval("obj."+"txt"+i).value=="")
T=false;
break;


if(!T)
alert("您输入的信息不能为空");

return T;

</script>
<form name="form1" onsubmit="return allsubmit()">
<input type="text" name="txt1" id="txt1" />
<input type="text" name="txt2" id="txt2"/>
<input type="text" name="txt3" id="txt3" value=""/>
<input type="text" name="txt4" id="txt4" value=""/>
<input type="text" name="txt5" id="txt5" value=""/>
<input type="submit" value="提交"/>
<input type="reset" value="重置"/>
</form>

这段代码的问题在于event对象的兼容性出现了问题。
火狐浏览器不能像谷歌浏览器那样方便的获取window.event事件,为了兼容,需要做以下处理:
var e = document.all ? window.event : arguments[0] ? arguments[0] : event;
参考技术A 你可以用360安全卫士电脑清理功能清理,然后再打开就可以正常显示。

当文本字段为空时禁用警报按钮 Swift 3

【中文标题】当文本字段为空时禁用警报按钮 Swift 3【英文标题】:Disable Alert Button when Text Field is Null with Swift 3 【发布时间】:2017-03-22 03:38:55 【问题描述】:

我想在文本框为空时禁用警报按钮。 我把按钮放在表格视图单元格中。因此,当您单击该按钮时,将弹出警告框。 我的代码如下。

  func cellTapped(cell: DeviceListTableCell) 
    self.showAlertForRow(row: tableView.indexPath(for: cell)!.row)


    func showAlertForRow(row: Int) 
    let alert = UIAlertController(
        title: "Enter Password !!!!!",
        message: "",
        preferredStyle: .alert)

    alert.addTextField  (textField) in

    


    let okAction = UIAlertAction(title: "OK", style: UIAlertActionStyle.default) 
        UIAlertAction in

        let pwd = alert.textFields?[0]

        self.password = pwd?.text

        debugPrint(self.password)
        debugPrint("Press OK")


        DispatchQueue.main.async(execute: 
            if(self.password == "")

                debugPrint("Null Password!")
            else
                debugPrint("Not Null Password!")

            
        )


    

    alert.addAction(okAction)

    // Present the controller
    DispatchQueue.main.async(execute: 
        self.present(alert, animated: true, completion: nil)
    )


protocol ButtonCellDelegate 
func cellTapped(cell: DeviceListTableCell)

谁能帮助我如何禁用/启用警报按钮?

【问题讨论】:

你真的尝试过什么吗?这应该只是注释掉代码或删除它的问题。 我真的不知道在哪里放置按钮启用/禁用代码。我已经尝试过了,但我得到了错误。 “致命错误:在展开可选值时意外发现 nil”。我在 alert.addAction(okAction) 之前设置了“okAction.isEnabled = false”。实际上主要问题是函数内部的 DispatchQueue。我无法在其中声明按钮禁用代码。我遇到了错误。 您要删除哪一部分,OK 部分还是调度队列中的部分? 我想检查文本框是否为空以禁用按钮。这就是我想要的兄弟。 我想if (self.password != "") alert.addAction(okAction) 可能会这样做... 【参考方案1】:

观察UITextFieldTextDidChange 通知以在文本更改时收到通知,然后启用和禁用okAction

// Create an alert controller
    let alertController = UIAlertController(title: "Alert", message: "Please enter text", preferredStyle: .alert)

    // Create an OK Button
    let okAction = UIAlertAction(title: "OK", style: .default)  (_) in
      // Print "OK Tapped" to the screen when the user taps OK
      print("OK Tapped")
    

    // Add the OK Button to the Alert Controller
    alertController.addAction(okAction)


    // Add a text field to the alert controller
    alertController.addTextField  (textField) in

      // Observe the UITextFieldTextDidChange notification to be notified in the below block when text is changed
      NotificationCenter.default.addObserver(forName: UITextField.textDidChangeNotification, object: textField, queue: OperationQueue.main, using:
        _ in
          // Being in this block means that something fired the UITextFieldTextDidChange notification.

          // Access the textField object from alertController.addTextField(configurationHandler:) above and get the character count of its non whitespace characters
          let textCount = textField.text?.trimmingCharacters(in: .whitespacesAndNewlines).count ?? 0
          let textIsNotEmpty = textCount > 0

          // If the text contains non whitespace characters, enable the OK Button
          okAction.isEnabled = textIsNotEmpty

      )
    

【讨论】:

以上是关于为啥在ie浏览器当文本框为空,可以弹出提示框,在firefox中无法弹出来的主要内容,如果未能解决你的问题,请参考以下文章

文本框提示信息

Access 2016 VBA 文本框为空

当所需的文本框为空时,如何强制页面回发

当文本字段为空时禁用警报按钮 Swift 3

如何通过 JavaScript 使 asp 文本框为空

Excel VBA,如果一个或多个文本框为空,如何禁用命令按钮