为了账号安全,请及时绑定邮箱和手机立即绑定

将用户 HTML 输入作为 javascript 函数参数传递

将用户 HTML 输入作为 javascript 函数参数传递

一只甜甜圈 2021-11-04 16:25:19
我有这行 javascript:stave.addClef("treble").addTimeSignature("4/4");根据用户在 HTML 文档中输入的内容,我想将“4/4”更改为“3/4”或用户想出的任何其他分数。进行这种有条件替换的最简单方法是什么?谢谢,纳库尔
查看完整描述

2 回答

?
慕侠2389804

TA贡献1719条经验 获得超6个赞

这是一个允许用户上下切换数字输入的选项:


<input type="number" id="fraction-1"/>

<input type="number" id="fraction-2"/>


Current Signature:

<div id="current-sig"></div>

然后在你的javascript中...



// Get the select form element

const FRACT_1 = 'fract-1'

const FRACT_2 = 'fract-2'

const fract1 = document.querySelector(`#${FRACT_1}`)

const fract2 = document.querySelector(`#${FRACT_2}`)

const currentSigDiv = document.querySelector('#current-sig')


let currentSignature = '4/4'


const changeSignatureByFraction = ({target}) => {

    if(target.id === FRACT_1)) {

        currentSignature = `${target.value}${currentSignature.substring(1)}`

        stave.addClef("treble").addTimeSignature(currentSignature)

        currentSigDiv.innerHTML = currentSignature

    } else {

        currentSignature = `${currentSignature.slice(0, -1)}${target.value}`

        stave.addClef("treble").addTimeSignature(currentSignature)

        currentSigDiv.innerHTML = currentSignature

    }


}


// Listen for a change event

fract1.addEventListener('change', changeSignatureByFraction)

fract2.addEventListener('change', changeSignatureByFraction)


currentSigDiv.innerHTML = currentSignature


查看完整回答
反对 回复 2021-11-04
?
互换的青春

TA贡献1797条经验 获得超6个赞

创建一个包含可能分数的下拉列表。将其值查询到变量中。将变量作为addTimeSignature()方法的参数传递。


HTML:


<select id="TimeSignatureSelect">

    <option value='1/4'>1/4</option>

    <option value='2/4'>2/4</option>

    <option value='3/4'>3/4</option>

    <option value='4/4'>4/4</option>

</select>

JS:


const timeSig = document.getElementByID('TimeSignatureSelect').value;

stave.addClef("treble").addTimeSignature(timeSig);


查看完整回答
反对 回复 2021-11-04
  • 2 回答
  • 0 关注
  • 154 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信