我正在尝试获取输入元素的值,例如这是简单的形式:
<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
我没有使用任何框架,
有什么建议吗?
答案 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 返回一个包含值字符串的映射