小编Mat*_*ava的帖子

如何取消选中已选中的单选按钮

事情是这个解决方案只在firefox中工作

$(':radio').on("change", function(event) {
  $(this).prop('checked', true);
});

$(':radio').on("click", function(event) {
  $(this).prop('checked', false);
});
Run Code Online (Sandbox Code Playgroud)

在chrome中,它不允许你选择任何东西 http://jsfiddle.net/wuAWn/

Ofc,我可以使用变量并写出类似的东西

var val = -1;
$(':radio').on("click", function() {
  if($(this).val() == val) {
    $(this).prop('checked', false);
    val = -1;
  }
  else val = $(this).val();
});
Run Code Online (Sandbox Code Playgroud)

但是我的页面上会有很少的单选按钮组,并且html内容是通过ajax加载的,所以我想为所有这些单元添加1个函数,而不是为每个单选按钮组定义变量并为每个单选按钮编写相同的函数组.

编辑:感谢您对复选框的帮助,但是对于充当单选按钮组的复选框,您需要编写adittional javascrip,取消选中具有相同名称的所有其他复选框onclick,我已经有单选按钮css,对我来说更容易添加像look-like-checkbox这样的类,让它看起来像复选框,我使用统一的库来定制外观,无论如何这里是我奇怪的解决方案http://jsfiddle.net/wuAWn/9/

javascript jquery radio-button

30
推荐指数
3
解决办法
14万
查看次数

如何仅在不存在时创建 terraform 资源

我正在使用 terraform 在 AWS 中创建一个角色。由于IAM是非区域服务,我只想创建一次角色。因此,每当我运行 terraform 时,它都应该检查该角色是否已经存在,如果不存在,它应该创建一个。

data "aws_iam_role" "iam_role_check" {
  name = "some_role"
}

resource "aws_iam_role" "iam_role" {
  count= "${data.aws_iam_role.iam_role_check != "null" ? 0 : 1}"
  name = "some_role"

  assume_role_policy = <<EOF
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Action": "sts:AssumeRole",
      "Principal": {
        "Service": "lambda.amazonaws.com"
      },
      "Effect": "Allow",
      "Sid": ""
    }
  ]
}
EOF
}
Run Code Online (Sandbox Code Playgroud)

data.aws_iam_role.iam_role_check:正在刷新状态...

错误:读取 IAM 角色 (some_role) 时出错:NoSuchEntity:找不到名为 some_role 的角色。状态码:404,请求ID:

amazon-web-services aws-lambda terraform terraform-provider-aws

7
推荐指数
1
解决办法
2万
查看次数

通过 ADB 检索 Android 通话记录

我的手机是 Android 9,我启用了 USB 调试,然后将其连接到 USB。现在我想检索通话记录,因为它每 3 个月删除一次,因此,我运行以下命令:

adb shell content query --uri content://call_log/calls
Run Code Online (Sandbox Code Playgroud)

它给了我这个错误

C:\Users\user\Downloads\platform-tools_r29.0.5-windows\platform-tools>adb shell content query --uri content://call_log/calls
Error while accessing provider:call_log
java.lang.SecurityException: Permission Denial: opening provider com.android.providers.contacts.CallLogProvider from (null) (pid=24824, uid=2000) requires android.permission.READ_CALL_LOG or android.permission.WRITE_CALL_LOG
        at android.os.Parcel.createException(Parcel.java:1966)
        at android.os.Parcel.readException(Parcel.java:1934)
        at android.os.Parcel.readException(Parcel.java:1884)
        at android.app.IActivityManager$Stub$Proxy.getContentProviderExternal(IActivityManager.java:6445)
        at com.android.commands.content.Content$Command.execute(Content.java:464)
        at com.android.commands.content.Content.main(Content.java:690)
        at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
        at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:341)
Caused by: android.os.RemoteException: Remote stack trace:
        at com.android.server.am.ActivityManagerService.getContentProviderImpl(ActivityManagerService.java:15895)
        at com.android.server.am.ActivityManagerService.getContentProviderImpl(ActivityManagerService.java:15804)
        at com.android.server.am.ActivityManagerService.getContentProviderExternalUnchecked(ActivityManagerService.java:16383)
        at com.android.server.am.ActivityManagerService.getContentProviderExternal(ActivityManagerService.java:16378)
        at android.app.IActivityManager$Stub.onTransact$getContentProviderExternal$(IActivityManager.java:11954)
Run Code Online (Sandbox Code Playgroud)

android adb

6
推荐指数
0
解决办法
2272
查看次数

AWS - DecodeAuthorizationMessage 未获授权解码消息

尽管我是该帐户的管理员,但我在特定 EC2 上添加了如下 IAM 角色,但仍然遇到相同的错误:

调用 DecodeAuthorizationMessage 操作时发生错误 (InvalidAuthorizationMessageException):未授权解码消息

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "sts:DecodeAuthorizationMessage"
            ],
            "Resource": [
                "*"
            ]
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

为什么我无法解码错误消息?

amazon-web-services

6
推荐指数
1
解决办法
3903
查看次数

Aurora 无服务器兼容版本

我正在尝试通过 Terraform 配置 Aurora Serverless 数据库。我有以下设置。

resource "aws_rds_cluster" "auth-db-cluster" {
  cluster_identifier        = "auth-db-cluster"
  engine                    = "aurora-postgresql"
  engine_mode               = "serverless"
  engine_version            = "10.7"
  database_name             = "${var.auth_db_name}"
  master_username           = "${var.auth_db_user}"
  master_password           = "${var.auth_db_password}"
  db_subnet_group_name      = "${aws_db_subnet_group.rds-subnet-group.id}"
  vpc_security_group_ids    = ["${aws_security_group.rds-security-group.id}"]
  skip_final_snapshot       = true
  final_snapshot_identifier = "Ignore"
}

resource "aws_rds_cluster_instance" "cluster_instances" {
  count              = 1
  identifier         = "auth-db-cluster-instance"
  cluster_identifier = "${aws_rds_cluster.auth-db-cluster.id}"
  instance_class     = "db.t3.micro"
}

Run Code Online (Sandbox Code Playgroud)

Terraform 失败将出现以下错误:

  • aws_rds_cluster.auth-db-cluster:创建 RDS 集群时出错:InvalidParameterValue:您请求的引擎模式无服务器当前不可用。状态代码:400,请求 ID:7d8bcb5b-0c41-4498-853d-5c6cfd491dd8

amazon-web-services terraform aws-aurora-serverless

5
推荐指数
1
解决办法
1990
查看次数

为什么只有 50 个实例在 AWS lambda 上运行?

我用来context.logStreamName识别 lambda 实例。并发设置为无保留。但日志显示只有 50 个实例正在运行。

我是否误解了logStream(pre logStream pre实例)?我从这个博客得到了信息

下面是我对应的代码:

let instances = {};
for (let i = 0; i < each_invokes; i++) {
    lambda.invoke(params, function (err, data) {
        if (err) {
            console.log(err, err.stack);
        } else {
            // console.log(data);
            let logs = Buffer.from(data.LogResult, 'base64').toString('utf8');
            let instanceID = logs.match(new RegExp("\\$InstanceID: (.*?) \\$END", "ig"))[0].split(" ")[1];
            if (instanceID) {
                if (instances.hasOwnProperty(instanceID)) {
                    instances[instanceID] += 1
                } else {
                    instances[instanceID] = 0
                }
                console.log(instanceID, instances[instanceID], 'StatusCode:', data.StatusCode);
            } else {
                console.log('missing …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services node.js aws-lambda

3
推荐指数
1
解决办法
3440
查看次数

通过JavaScript创建时内联块元素的行为不一致

我有一堆相同的divs display属性设置为inline-block.我知道inline-block默认情况下,元素周围有一些边距,所以没有任何修改,我会期望这些元素周围有一些自由空间(这个问题不是要删除它们).

如果我只是将它们硬编码到html文件中,那么它们的行为就像我期望的那样.

* {
  margin: 0;
  padding: 0;
}

div.box {
  width: 100px;
  height: 40px;
  background: red;
  display: inline-block;
}
Run Code Online (Sandbox Code Playgroud)
<div tabindex="1" class='box'></div>
<div class='box'></div>
<div class='box'></div>
Run Code Online (Sandbox Code Playgroud)

但是如果我开始通过JavaScript添加它们,顶部和底部边距保持不变,但左右边缘似乎消失了.

在这段代码中,如果我选中第一个元素然后点击回车,div则会创建并添加新内容,DOM但如上所述,当我开始添加更多内容时,边距消失了(多次输入).

const btn = document.querySelector('div.box');

btn.addEventListener('keypress', event => {
  if (event.key === 'Enter') {
    const box = document.createElement('div');
    box.className = 'box';
    document.body.appendChild(box);
  }
});
Run Code Online (Sandbox Code Playgroud)
* {
  margin: 0;
  padding: 0;
}

div.box {
  width: 100px;
  height: 40px;
  background: red;
  display: …
Run Code Online (Sandbox Code Playgroud)

html javascript css

1
推荐指数
1
解决办法
45
查看次数

AWS Lambda:“参数验证失败”

我有一个 lambda 函数,我在其中发送电子邮件,并且邮件模板作为对象从 S3 存储桶中获取。我已经在我的计算机本地运行了代码并且工作正常。当我将其粘贴到 lambda 函数中时,它显示以下错误。

Response:
{
  "errorMessage": "Parameter validation failed:\nInvalid type for parameter Message.Body.Html.Data, value: b\"<html>\\n<head></head>\\n<body>\\n  <h1>Amazon SES Test (SDK for Python)</h1>\\n  <p>This email was sent with\\n    <a href='https://aws.amazon.com/ses/'>Amazon SES</a> using the\\n    <a href='https://aws.amazon.com/sdk-for-python/'>\\n      AWS SDK for Python (Boto)</a>.</p>\\n</body>\\n</html>\", type: <class 'bytes'>, valid types: <class 'str'>",
  "errorType": "ParamValidationError",
  "stackTrace": [
    [
      "/var/task/lambda_function.py",
      65,
      "lambda_handler",
      "Source=SENDER,"
    ],
    [
      "/var/runtime/botocore/client.py",
      314,
      "_api_call",
      "return self._make_api_call(operation_name, kwargs)"
    ],
    [
      "/var/runtime/botocore/client.py",
      586,
      "_make_api_call",
      "api_params, operation_model, context=request_context)"
    ],
    [
      "/var/runtime/botocore/client.py",
      621,
      "_convert_to_request_dict",
      "api_params, …
Run Code Online (Sandbox Code Playgroud)

python amazon-web-services boto3 aws-lambda

1
推荐指数
1
解决办法
2万
查看次数

componentDidMount 未呈现

我有一个 Header 组件,它假设根据用户是否登录的条件来呈现他的子组件。它通过会话存储识别条件。我试图通过以下方式控制渲染 componentDidMount

renderUserHeader = () => {
  if (sessionStorage.getItem('user-auth')) {
    var tokenToSend = { token: sessionStorage.getItem('user-auth') }
    var regJSONED = JSON.stringify(tokenToSend)

    fetch('http://localhost:4000/users/token', {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json'
      },
      body: regJSONED
    })
    .then(response => {
      if (!response.ok) {
        throw new Error('HTTP error ' + response.status)
      }
      return response.text()
    })
    .then(data => {
      let JsonedUserName = JSON.parse(data)

      this.setStateUserName(JsonedUserName.name, JsonedUserName.admin)
    })

    if (!this.state.admin) {
      return <UserHeader name={this.state.userName} />
    } else if (this.state.admin) {
      return <AdminHeader name={this.state.userName} />
    } …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs

1
推荐指数
1
解决办法
133
查看次数