0

Joomla コンポーネントの Vik Rent Cars からカスタム フィールドを作成しました。カスタム フィールドの ID は「vrcf13」です。どうすれば8つの数字のみを受け入れるようにできますか?

コードは次のとおりです。

<table class="vrccustomfields">
    <?php
    $currentUser = JFactory::getUser();
    $juseremail = !empty($currentUser->email) ? $currentUser->email : "";
    foreach ($cfields as $cf) {
        if (intval($cf['required']) == 1) {
            $isreq = "<span class=\"vrcrequired\"><sup>*</sup></span> ";
        } else {
            $isreq = "";
        }
        if (!empty ($cf['poplink'])) {
            $fname = "<a href=\"" . $cf['poplink'] . "\" id=\"vrcf" . $cf['id'] . "\" rel=\"{handler: 'iframe', size: {x: 750, y: 600}}\" target=\"_blank\" class=\"modal\">" . JText :: _($cf['name']) . "</a>";
            } else { 
            $fname = "<span id=\"vrcf" . $cf['id'] . "\">" . JText :: _($cf['name']) . "</span>";
                            }
        if ($cf['type'] == "text") {
            $textmailval = intval($cf['isemail']) == 1 ? $juseremail : "";
        ?>
                    <tr><td align="right"><?php echo $isreq; ?><?php echo $fname; ?> </td><td><input type="text" name="vrcf<?php echo $cf['id']; ?>" value="<?php echo $textmailval; ?>" size="40" class="vrcinput"/></td></tr>
        <?php

        }elseif ($cf['type'] == "textarea") {
        ?>
                    <tr><td valign="top" align="right"><?php echo $isreq; ?><?php echo $fname; ?> </td><td><textarea name="vrcf<?php echo $cf['id']; ?>" rows="5" cols="30" class="vrctextarea"></textarea></td></tr>
        <?php

        }elseif ($cf['type'] == "date") {
        ?>
                    <tr><td valign="top" align="right"><?php echo $isreq; ?><?php echo $fname; ?> </td><td><?php echo JHTML::_('calendar', '', 'vrcf'.$cf['id'], 'vrcf'.$cf['id'].'date', $nowdf, array('class'=>'vrcinput', 'size'=>'10',  'maxlength'=>'19')); ?></td></tr>
        <?php

        }elseif ($cf['type'] == "select") {
            $answ = explode(";;__;;", $cf['choose']);
            $wcfsel = "<select name=\"vrcf" . $cf['id'] . "\">\n";
            foreach ($answ as $aw) {
                if (!empty ($aw)) {
                    $wcfsel .= "<option value=\"" . $aw . "\">" . $aw . "</option>\n";
                }
            }
            $wcfsel .= "</select>\n";
        ?>
4

1 に答える 1

0

私が正しく理解している場合、ユーザーがテキスト フィールドに数字以外の 8 文字を超える文字を入力できないようにしようとしています。これは、Javascript を使用して実現できます。これは、jQuery が使用可能であることを前提としています。

$(function() {
    $("#number").keydown(function(key) {
        // This will only ensure the key pressed is a number (excludes the numpad)
        if(key.keyCode < 48 || key.keyCode > 57) {
            return false;
        }                                                         
        // Prevent more than 8 insertions
        if($(this).val().length > 8) {
            return false;
        }
    });
});

コメントで述べたように、これは数字キーが押されていることを確認するだけで、テンキーには対応していません。また、ユーザーが削除などを行うのを防ぎます。許可するキーコードの完全なリストを探し出すことができます。

JS を使用する代わりに、送信後にサーバー側の値を確認することもできます。フラグとともにPHPを使用できfilter_var()ますFILTER_VALIDATE_INTstrlen()

于 2013-08-22T12:59:35.703 に答える