使用Dart

时间:2018-08-18 23:59:16

标签: forms dart dart-html

我正在尝试获取输入元素的值,例如这是简单的形式:

<form id="loginForm">
        <label for="username">Username</label>
        <input required type="text" class="form-control" id="username">
        <label for="password">Passowrd</label>
        <input required type="password"id="password">
    </div>
    <button type="submit">Submit</button>
</form>

使用jQuery,我会写:

let value = $("#password").val();

或者我什至可以序列化整个表格,

但是在Dart中这似乎不起作用:

querySelector('#username').getAttribute('value');

,它返回null

我没有使用任何框架,

有什么建议吗?

4 个答案:

答案 0 :(得分:3)

querySelector将仅返回HtmlElement。由于您知道结果是InputElement(当时是TextInputElement),因此需要将其强制转换为对value属性的访问权限。

(querySelector('#usernames') as InputElement).value

答案 1 :(得分:0)

As of Dart version 2.2.0 (2019), the above answers no longer appear to work. Casting now returns this error:

Uncaught CastError: Instance of 'HtmlElement': type 'HtmlElement' is not a subtype of type 'InputElement'

Here's a way to access an input field's value without casting:

String value = document.getElementById('username').text;

答案 2 :(得分:0)

如果在使用mydomain.com/*时将提示元素提示为InputElement,则可以访问其querySelector

value

答案 3 :(得分:0)

从 Dart HTML 包版本 0.15.0 开始,这是唯一对我有用的方法

String value= document.querySelector('#movie_id').attributes['value'];

querySelector('xxx').attributes 返回一个包含值字符串的映射