JSON无法将对象解组为字符串类型

时间:2019-03-27 17:54:17

标签: javascript html go

使用github.com/zserge/lorca软件包编写Golang应用。 这会将golang函数绑定到Javascript。 我有带有文本输入和提交按钮的HTML,该按钮应将文本输入作为arg传递到Javascript绑定中。它看起来如下:

<input type="text" name="MACADD" style="height:20px; width:210px">
<input type="submit" value="submit" onclick="JSBINDFUNC(MACADD)">

JSBINDFUNC使用golang类型string进行输入。 当我点击提交时,它应该将为MACADD输入的文本作为参数传递到JSBINDFUNC函数中。

但是,我又回来了

exception":{"type":"string","value":"json: cannot unmarshal object into Go value of type string"}

需要这个object成为golang string

更完整的截图:

package main

import (
    "fmt"
    "log"
    "net/url"

    "github.com/zserge/lorca"
)

func main() {
    ui, err := lorca.New("data:text/html,"+url.PathEscape(`
        <html>
                <form action="/action_page.php">
                    MAC Address:<br>
                    <input type="text" name="MACADD" style="height:20px; width:210px">
                    <input type="submit" value="Submit" onclick="JSBINDFUNC(MACADD)">
                </form> 
            </body>
        </html>
        `), "", 480, 320)
    if err != nil {
        log.Fatal(err)
    }
    //ui.Bind implemented @ https://github.com/zserge/lorca/blob/master/ui.go#L110
    ui.Bind("JSBINDFUNC", func(MAC string) {
        fmt.Println(MAC)
        return
    })
    defer ui.Close()
    <-ui.Done()
}

1 个答案:

答案 0 :(得分:2)

问题出在您的JavaScript上。像这样更新您的onclick属性:

<input type="submit" value="Submit" onclick="JSBINDFUNC(MACADD.value)">