- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我的JS功夫不行,来求助了。我有一个 form.php 页面,其中有大约 20 个输入字段;但是,如果单击一个单选按钮,则需要禁用一半以上的输入字段。这是我到目前为止所拥有的:
<script type="text/javascript" charset="utf-8">
// create an array of all elementId's that need to be disabled/enabled based on whether radio button TR 280 or 284 is selected
let fieldsAffected = [ 'f2Cct2Or4Wire2W', 'f2Cct2Or4Wire4W', 'f3Cct2Or4Wire2W', 'f3Cct2Or4Wire4W', 'f4Cct2Or4Wire2W', 'f4Cct2Or4Wire4W' ];
function eqptTypeVal() { // FUNC to check the state of eqptType when page first loads and disabling/enabling required fields as necessary
var rs = document.querySelector( 'input[ name = "eqptType" ]:checked' ).value;
if ( rs == '280' ) {
for ( let i = 0; i < fieldsAffected.length; i++ ) {
document.getElementById( fieldsAffected[ i ] ).setAttribute( 'disabled', true );
} // close FOR
} else {
for ( let i = 0; i < fieldsAffected.length; i++ ) {
document.getElementById( fieldsAffected[ i ] ).removeAttibute( 'disabled' );
} // close FOR
} // close IF
} // close FUNC eqptTypeVal
window.onload = eqptTypeVal;
$( document ).ready( function() { // FUNC to monitor 280 radio button and when clicked disable the elementIds in array fieldsAffected
$( '#eqptType280' ).click( function() {
for ( let i = 0; i < fieldsAffected.length; i++ ) {
$( fieldsAffected[ i ] ).setAttribute( 'disabled', true );
} // close FOR
/*
$( '#f2Cct2Or4Wire2W' ).attr( 'disabled', true );
$( '#f2Cct2Or4Wire4W' ).attr( 'disabled', true );
$( '#f3Cct2Or4Wire2W' ).attr( 'disabled', true );
$( '#f3Cct2Or4Wire4W' ).attr( 'disabled', true );
$( '#f4Cct2Or4Wire2W' ).attr( 'disabled', true );
$( '#f4Cct2Or4Wire4W' ).attr( 'disabled', true );
*/
});
}); // close docReady FUNC
$( document ).ready( function() { // FUNC to monitor 284 radio button and when clicked enable the elementIds in array fieldsAffected
$( '#eqptType284' ).click( function() {
for ( let i = 0; i < fieldsAffected.length; i++ ) {
$( fieldsAffected[ i ] ).setAttribute( 'disabled', false );
} // close FOR
/*
$( '#f2Cct2Or4Wire2W' ).attr( 'disabled', false );
$( '#f2Cct2Or4Wire4W' ).attr( 'disabled', false );
$( '#f3Cct2Or4Wire2W' ).attr( 'disabled', false );
$( '#f3Cct2Or4Wire4W' ).attr( 'disabled', false );
$( '#f4Cct2Or4Wire2W' ).attr( 'disabled', false );
$( '#f4Cct2Or4Wire4W' ).attr( 'disabled', false );
*/
});
}); // close docReady FUNC
</script>
JS 实际上在没有 fieldsAffected 数组的情况下按要求工作,使用下面两个 JS 函数中的注释掉的 block 。但是因为如果选择了 280 单选按钮,我将有一个较长的要禁用的 elementIds 列表,所以我想使用数组和循环来管理受影响的 elementIds 的禁用-启用。
数组必须是好的,因为它在第一个 JS 函数中用于检查 280 单选按钮是否被选中,取决于 mysql 数据,当页面首次加载时,禁用-启用数组中的 elementIds 按预期排列。但是随后单击 280 或 284 按钮,在以下两个 JS 函数中使用相同的数组,当 280 或 284 单选按钮在初始页面加载后被点击。
但是数组似乎不起作用的第二个和第三个函数必须没问题,因为没有数组,并且所有 elementIds 都一一列出,输入字段会在 280 或 284 个单选按钮被点击。
但是我真的对JS一窍不通。任何人都可以帮助指出我将上面粘贴的数组和函数组合在一起时丢失的语言的一些可能细微差别吗?
<=== 添加了 HTML ===>
<fieldset class="fieldsetToneRemote">
<legend>Eqpt ID</legend>
<div class="formRowDiv">
<label>
<span>Eqpt Type:</span>
<input type="radio" id="eqptType280" name="eqptType" value="280"
<?php
if ( $_SESSION[ 'eqptType' ] == "280" ) {
echo ' checked';
}
?>
>
<span class="radioLabel">280</span>
<input type="radio" id="eqptType284" name="eqptType" value="284"
<?php
if ( empty( $_SESSION[ 'eqptType' ] ) || is_null( $_SESSION[ 'eqptType' ] ) ) {
echo ' checked';
} elseif ( $_SESSION[ 'eqptType' ] == "284" ) {
echo ' checked';
}
?>
>
<span class="radioLabel">284</span>
</label>
</div><!-- close formRowDiv -->
最佳答案
// create an array of all elementId's that need to be disabled/enabled based on whether radio button TR 280 or 284 is selected
var fieldsAffected = ['f2Cct2Or4Wire2W', 'f2Cct2Or4Wire4W', 'f3Cct2Or4Wire2W', 'f3Cct2Or4Wire4W', 'f4Cct2Or4Wire2W', 'f4Cct2Or4Wire4W'];
function eqptTypeVal() { // FUNC to check the state of eqptType when page first loads and disabling/enabling required fields as necessary
var rs = $('input[name="eqptType"]:checked').val() == 280;
$.each(fieldsAffected, function(i, val) {
$("#" + val).prop('disabled', rs);
})
} // close FUNC eqptTypeVal
$(function() { // when page loads
eqptTypeVal(); // run the function
// when either radio is clicked, run the function
$('input[name="eqptType"]').on("click", eqptTypeVal);
}); // close docReady FUNC
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<label><input type="radio" name="eqptType" value="280" checked/>280</label>
<label><input type="radio" name="eqptType" value="284" />284</label><br/>
<input id="f2Cct2Or4Wire2W" /><br/>
<input id="f2Cct2Or4Wire4W" /><br/>
<input id="f3Cct2Or4Wire2W" /><br/>
<input id="f3Cct2Or4Wire4W" /><br/>
<input id="f4Cct2Or4Wire2W" /><br/>
<input id="f4Cct2Or4Wire4W" /><br/>
关于javascript - JS数组适用于一个函数但不适用于另一个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43714666/
我在我的 Xcode 项目目录中输入了以下内容: keytool -genkey -v -keystore release.keystore -alias mykey -keyalg RSA \
假设我有一个像这样的 DataFrame(或 Series): Value 0 0.5 1 0.8 2 -0.2 3 None 4 None 5 None
我正在对一个 Pandas 系列进行相对繁重的应用。有什么方法可以返回一些打印反馈,说明每次调用函数时在函数内部进行打印还有多远? 最佳答案 您可以使用跟踪器包装您的函数。以下两个示例,一个基于完成的
我有一个 DataFrame,其中一列包含列表作为单元格内容,如下所示: import pandas as pd df = pd.DataFrame({ 'col_lists': [[1, 2
我想使用 Pandas df.apply 但仅限于某些行 作为一个例子,我想做这样的事情,但我的实际问题有点复杂: import pandas as pd import math z = pd.Dat
我有以下 Pandas 数据框 id dist ds 0 0 0 0 5 1 0 0 7 2 0 0
这发生在我尝试使用 Gradle 构建时。由于字符串是对象,因此似乎没有理由发生此错误: No signature of method: java.util.HashMap.getOrDefault(
您好,有人可以解释为什么在 remaining() 函数中的 Backbone 示例应用程序 ( http://backbonejs.org/examples/todos/index.html ) 中
我有两个域类:用户 class User { String username String password String email Date dateCreated
问题陈述: 一个 pandas dataframe 列系列,same_group 需要根据两个现有列 row 和 col 的值从 bool 值创建。如果两个值在字典 memberships 中具有相似
apporable 报告以下错误: error: unknown type name 'MKMapItem'; did you mean 'MKMapView'? MKMapItem* destina
我有一个带有地址列的大型 DataFrame: data addr 0 0.617964 IN,Krishnagiri,635115 1 0.635428 IN,Chennai
我有一个列表list,里面有这样的项目 ElementA: Number=1, Version=1 ElementB: Number=1, Version=2 ElementC: Number=1,
我正在编译我的源代码,它只是在没有运行应用程序的情况下终止。这是我得到的日志: Build/android-armeabi-debug/com.app4u.portaldorugby/PortalDo
我正在尝试根据另一个单元格的值更改单元格值(颜色“红色”或“绿色”)。我运行以下命令: df.loc[0, 'Colour'] = df.loc[0, 'Count'].apply(lambda x:
我想弄清楚如何使用 StateT结合两个 State基于对我的 Scalaz state monad examples 的评论的状态转换器回答。 看来我已经很接近了,但是在尝试申请 sequence
如果我已经为它绑定(bind)了集合,我该如何添加 RibbonLibrary 默认的快速访问项容器。当我从 UI 添加快速访问工具项时,它会抛出 Operation is not valid whi
在我学习期间Typoclassopedia我遇到了这个证明,但我不确定我的证明是否正确。问题是: One might imagine a variant of the interchange law
我是一名优秀的程序员,十分优秀!