首页 > 解决方案 > onClick 功能不适用于选定的选项字段

问题描述

我的网页上有一个 Paypal 按钮,其中包含以下生成的代码:

<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top" class="center-align" id="paypal">
  <input type="hidden" name="cmd" value="_s-xclick" >
  <input type="hidden" name="hosted_button_id" value="XMMPHFAWFLLRG">
  <input type="image" src="https://www.paypalobjects.com/de_DE/DE/i/btn/btn_buynowCC_LG.gif" border="0" name="submit" alt="Jetzt einfach, schnell und sicher online bezahlen – mit PayPal." ">
  <img alt=""

通过单击“立即购买”徽标,JS 应检查是否选择了选项。我正在使用 Materialize 框架,这就是选择字段:

<select>
  <option value="0" disabled selected>Kategorie</option>
  <option value="1">Beauty</option>
  <option value="2">Technik</option>
  <option value="3">Deko</option>
</select>

所以没有 ID 或类名,它是页面上唯一的选择。

我尝试过的 Javascript 看起来像这样:

function isSelected() {
  if (getElementsByTagName("select").value == '0') {
    alert("Bitte eine Kategorie auswählen!");
  }
}

大家觉得我能解决这个问题吗?我检查了类似的问题,但没有得到解决。

标签: javascriptjqueryselected

解决方案


A)如果它被禁用,它被选中有什么意义吗?只是一个逻辑问题,也许您的框架也可能会导致问题 B) options[ selectedIndex ].value 是您应该查看的

var paypalSelect = getElementsByTagName("select")[0], // only if it really is the first SELECT on your page .. otherwise .. see below
ppsIndex = paypalSelect.selectedIndex, 
ppsValue = paypalSelect.options[ ppsIndex ].value

您可以考虑给它一个 ID,如下所示:

<select id="paypal_select_Kategorie">…&lt;/select>

接着

var paypalSelect = document.querySelector( '#paypal_select_Kategorie' ) // etc.pp.

所以..把它们放在一起:首先给 input:image:submit 一个 onclick 监听器:

onclick=checkCategory(this)

然后添加这个函数:

function checkCategory( ppSelect ){
  var ppsIndex = ppSelect.selectedIndex, 
    ppsValue = ppSelect.options[ ppsIndex ].value
  if( parseInt( ppsValue ) == 0 ) console.log( "disabled standard" ); else console.log( "non-standard selection: "+ ppsValue )
}

推荐阅读