js获得某个name的输入框的值
时间: 2024-03-21 09:44:05 浏览: 17
可以使用JavaScript中的`document.getElementsByName()`方法来获取指定name属性的所有元素,然后通过遍历的方式获取对应的输入框的值。例如,假设输入框的name属性为"myInput",可以使用以下代码获取该输入框的值:
```
var inputList = document.getElementsByName("myInput");
var inputValue = "";
for (var i = 0; i < inputList.length; i++) {
if (inputList[i].tagName.toLowerCase() === "input" && inputList[i].type.toLowerCase() === "text") {
inputValue = inputList[i].value;
break;
}
}
console.log(inputValue);
```
上述代码会先通过`getElementsByName()`方法获取所有name属性为"myInput"的元素,然后遍历这些元素,找到tagName为"input"且type为"text"的元素,最后获取该元素的value属性作为输入框的值。
相关问题
多选框html相同name属性,JS获得多个同name 的input输入框的值的实现方法
首先,在 HTML 中,如果你想让多个复选框之间相互关联,可以使用相同的 `name` 属性,这样就可以将它们归为一组。然后,在 JavaScript 中,你可以通过以下方式获得这些复选框的值:
1. 使用 `document.getElementsByName()` 方法来获取所有的同名复选框元素,然后遍历它们,判断哪些元素被选中了:
```javascript
var checkboxes = document.getElementsByName('myCheckbox');
var values = [];
for (var i=0; i<checkboxes.length; i++) {
if (checkboxes[i].checked) {
values.push(checkboxes[i].value);
}
}
```
2. 如果你想在复选框的 `onchange` 事件触发时更新选中的值,可以这样做:
```javascript
var checkboxes = document.getElementsByName('myCheckbox');
var values = [];
for (var i=0; i<checkboxes.length; i++) {
checkboxes[i].onchange = function() {
values = [];
for (var j=0; j<checkboxes.length; j++) {
if (checkboxes[j].checked) {
values.push(checkboxes[j].value);
}
}
};
}
```
这样,每当某个复选框的状态改变时,就会重新计算所有选中的值。
@formily/next 如何通过Form上的方法设置某个输入框的disabled属性
如果你想在 `@formily/next` 组件库中,通过表单上的方法来设置某个输入框的 `disabled` 属性,可以使用 `setFormState` 方法来实现。
假设你的表单结构如下:
```js
const form = createForm({
initialValues: {
name: 'John',
age: 25,
},
// ...其他配置
});
```
如果你想动态地将 `age` 字段对应的输入框设置为禁用状态,可以通过如下代码来实现:
```js
form.setFormState((state) => {
const ageField = state.getField('age');
if (ageField) {
ageField.setDisabled(true);
}
});
```
这里的 `setFormState` 方法接收一个回调函数,该函数接收当前表单状态 `state` 作为参数,并返回一个新的表单状态。在回调函数中,你可以通过 `state.getField` 方法来获取指定字段的状态对象,并调用其 `setDisabled` 方法来设置 `disabled` 属性的值。
这样就可以动态地将 `age` 字段对应的输入框设置为禁用状态了。